Angular Directives性能问题

时间:2015-03-30 10:13:49

标签: javascript angularjs angularjs-directive

我有一个.NET webservice,它返回一个像这样的对象:

myObj = {
prop1: value,
prop2:value,
...
prop5:value
}

我创建了一个返回整个对象(myObj)的角度服务。 我创建了5个不同的指令,以在应用程序的不同页面中显示这些属性(有时,它们中的一些可以在同一页面中)。 我在这些指令中调用角度服务,为它们中的任何一个创建这个“链接”功能:

link: function (scope, element, attrs) {
            getService.getMethod().$promise.then(
                function (myObj) {
                    element.text(myObj.prop1); // .prop2, ... , prop5
                },
                function (statusCode) {
                    console.log(statusCode);
                }
            );
        }

我觉得我的方法不是最好的,调用五次角度服务(通过$ promise)获得实际上相同的对象(myObj)。 如果您对该服务的看法感兴趣:

var localResource = $resource('https://.....',
    {},
    {'getAll': {method: 'JSONP', isArray: false, params: {callback: 'JSON_CALLBACK'}}}
);

return {
    getMethod: function () {
        return localResource.getAll();
    }
}

请帮助,如果有人有想法,我可以改进它。

谢谢!

1 个答案:

答案 0 :(得分:0)

听起来您可以使getMethod只发出一次服务器调用。

.factory("getService", function () {
  var getAll;
  return {
    getMethod: function () {
      if (!getAll) {
        getAll = localResource.getAll();
      }
      return getAll;
    };
  };
});