我有一个.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();
}
}
请帮助,如果有人有想法,我可以改进它。
谢谢!
答案 0 :(得分:0)
听起来您可以使getMethod
只发出一次服务器调用。
.factory("getService", function () {
var getAll;
return {
getMethod: function () {
if (!getAll) {
getAll = localResource.getAll();
}
return getAll;
};
};
});