我有一个会由一个或多个控制器,通过服务改变使用的变量。 在这种情况下,我已经建立了控制器之间,保持此变量存储服务,与大家共享。
问题是:每一个该变量的变化,在控制器中的变量不能实时更新的时间。
我创建这个小提琴帮助。 http://jsfiddle.net/ncyVK/
---请注意{{countService}}
或{{countFactory}}
当我增加计数的值永远不会更新。
我怎样才能绑定在控制器上的服务/工厂变量$ scope.variable? 我做错了吗?
我有一个会由一个或多个控制器,通过服务改变使用的变量。 在这种情况下,我已经建立了控制器之间,保持此变量存储服务,与大家共享。
问题是:每一个该变量的变化,在控制器中的变量不能实时更新的时间。
我创建这个小提琴帮助。 http://jsfiddle.net/ncyVK/
---请注意{{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>
这不是绑定从服务中的任何数据好主意,但如果你需要它了,我建议你那些以下2种方式。
1)获取的数据不是你的service.Get数据里面你控制器内,你将无法约束它的任何问题。
2)你可以使用AngularJs活动feature.You甚至可以通过该事件将数据发送到。
如果您需要更多举例这里的物品,其也许可以帮助你。
http://www.w3docs.com/snippets/angularjs/bind-value-between-service-and-controller-directive.html