角度指令性能问题



我有一个.NET Web服务,它返回一个类似的对象

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();
    }
}

请帮忙,如果有人有想法,我可以改进吗?

谢谢!

听起来您只能让getMethod发出一个服务器调用。

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

最新更新