假设我有一个服务来保存视图或一些视图的数据,它看起来像这样。
angular.module('testApp').factory('MyService', MyService);
function MyService() {
var data = {name: "Bill"};
return {
getData: getData
};
function getData() {
return data;
}
}
在我的控制器中,我有这样的:
view.data = MyService.getData;
我将它绑定到我的模型:
<input type="text" ng-model="myCtrl.data().name"/>
这将服务的getter函数绑定到ng-model并使其成为所以我永远不必担心用服务数据更新我的控制器,反之亦然。 我的问题是,这样做是否有任何负面影响? $ watcher调用众多getter函数的性能影响?
答案 0 :(得分:0)
您使用的方式看起来很有效但如果您的value
将基于任何ajax /异步设置,则可能会导致问题。
但是使用dot rule
<强>标记强>
<input type="text" ng-model="myCtrl.data.name"/>
<强>控制器强>
view.data = MyService.data;
<强>服务强>
angular.module('testApp').factory('MyService', MyService);
function MyService() {
var data = {name: "Bill"};
var otherOperation = function(){
data.name = 'name has been changed.';
};
return {
data: data,
otherOperation: otherOperation
};
};
通过上述方法,服务变量的任何变化都将反映在UI上。