在angularjs中自动更新范围变量
我正在玩AngularJS.我想从一个服务中返回一个变量,它将让范围知道它何时发生了变化.
为了说明这一点,请查看www.angularjs.org中的示例,“连接后端”.粗略地说,我们可以看到以下内容: var projects = $firebase(new Firebase("http://projects.firebase.io")); $scope.projects = projects; 在此之后,对项目对象所做的所有更新(通过更新,无论是本地还是远程)都将自动反映在范围绑定的视图上. 我怎样才能在我的项目中实现同样的目标?就我而言,我想从服务中返回一个“自我更新”变量. var inbox = inboxService.inboxForUser("fred"); $scope.inbox = inbox; 什么机制让$scope知道它应该更新? 编辑: $scope.auto = { value: 0 }; setInterval(function () { $scope.auto.value += 1; console.log($scope.auto.value); },1000); 而且,在我看来的某个地方: <span>{{auto.value}}</span> 不过,它只显示0.我做错了什么? 解决方法
更新:
我做了一个演示plunker:http://plnkr.co/edit/dmu5ucEztpfFwsletrYW?p=preview 诀窍是使用普通的javascript引用: >您需要将对象传递给范围. 例如: 服务: app.factory('inboxService',function($http){ return { inboxForUser: function(user){ var inbox = {}; $http.get('/api/user/' + user).then(function(response){ angular.extend(inbox,response.data); }) return inbox; } }; }); 控制器: app.controller('ctrl',function(inboxService){ $scope.inbox = inboxService.inboxForUser("fred"); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |