AngularJS数据获取函数用作ng模型值

时间:2015-08-05 20:41:35

标签: angularjs angular-ngmodel

假设我有一个服务来保存视图或一些视图的数据,它看起来像这样。

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函数的性能影响?

1 个答案:

答案 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上。