您好,欢迎访问一九零五行业门户网

Angularjs中的factory在promise之后,如何更新在controller中的数据?

app.factory('mainclass',function($http,mainfac){ var mainclass=function(){ this.uid; this.sid; this.getuid(); } mainclass.prototype.getuid=function(){ var promise = mainfac.query('opt','parm1','parm2'); promise.then(function(data){ console.info(mainclass is :,data); this.sid=data.sid; console.info(this.sid :,this.sid); }); }; return mainclass; }); app.controller('percenterctrl', function($scope, $http, $state, ngdialog, qfact, myfactory,mainfac,mainclass) { var mainobj=new mainclass(); console.info(mainobj is :,mainobj); $scope.sid=mainobj.sid;});

代码目的:
controller顺序执行,遇到名为mainclass的factory初始化,mainclass异步初始化,从后台拿到数据并更新自己的this.sid,此时在controller中也更新$scope.sid;
遇到困难:
我的理解是:$scope.sid=mainobj.sid;已经绑定了,在mainclass执行过程,异步地从后台拿到数据并更新自己的this.sid后,$scope.sid应相应更新自己的值,可是并没有更新;
回复内容: app.factory('mainclass',function($http,mainfac){ var mainclass=function(){ this.uid; this.sid; this.getuid(); } mainclass.prototype.getuid=function(){ var promise = mainfac.query('opt','parm1','parm2'); promise.then(function(data){ console.info(mainclass is :,data); this.sid=data.sid; console.info(this.sid :,this.sid); }); }; return mainclass; }); app.controller('percenterctrl', function($scope, $http, $state, ngdialog, qfact, myfactory,mainfac,mainclass) { var mainobj=new mainclass(); console.info(mainobj is :,mainobj); $scope.sid=mainobj.sid;});

代码目的:
controller顺序执行,遇到名为mainclass的factory初始化,mainclass异步初始化,从后台拿到数据并更新自己的this.sid,此时在controller中也更新$scope.sid;
遇到困难:
我的理解是:$scope.sid=mainobj.sid;已经绑定了,在mainclass执行过程,异步地从后台拿到数据并更新自己的this.sid后,$scope.sid应相应更新自己的值,可是并没有更新;
app.factory('mainclass',function(mainfac){ function getuid(){ mainfac.query('opt','parm1','parm2').then(function(response){ return response; },function(error){ return error; }); } return {getuid}; }); app.controller('percenterctrl', function($scope, $http, $state, ngdialog, qfact, myfactory,mainfac,mainclass) { mainclass.getuid().then(function(data){ console.info(mainobj is :,data); $scope.sid=data.sid; });});
没太看懂,你这么写写试试。建议你看看这个:http://each.sinaapp.com/angular/tutorial/ng-factory.html
其它类似信息

推荐信息