我有一个变量将被一个或多个控制器使用,由服务更改。
在这种情况下,我建立了一个服务,保持这个变量在内存中,并在控制器之间共享。
在这种情况下,我建立了一个服务,保持这个变量在内存中,并在控制器之间共享。
问题是:每次变量更改时,控制器中的变量不会实时更新。
我创建这个小提琴帮助。 http://jsfiddle.net/ncyVK/
—请注意,当我增加count的值时,{{countService}}或{{countFactory}}永远不会更新。
如何在服务/工厂变量绑定到$ scope.variable在控制器?我做错了什么?
您不能绑定变量。但是您可以绑定包含此变量的变量访问器或对象。这里是固定的
jsfiddle。
基本上你必须传递到范围的东西,它可以返回/或保持当前值。例如。
厂:
app.factory('testFactory',function(){ var countF = 1; return { getCount : function () { return countF; //we need some way to access actual variable value },incrementCount:function(){ countF++; return countF; } } });
控制器:
function FactoryCtrl($scope,testService,testFactory) { $scope.countFactory = testFactory.getCount; //passing getter to the view $scope.clickF = function () { $scope.countF = testFactory.incrementCount(); }; }
视图:
<div ng-controller="FactoryCtrl"> <!-- this is now updated,note how count factory is called --> <p> This is my countFactory variable : {{countFactory()}}</p> <p> This is my updated after click variable : {{countF}}</p> <button ng-click="clickF()" >Factory ++ </button> </div>