我正在创建一个资源来将数据传递到我的控制器中,以获取需要连接的现有 api。不幸的是,我无法修改后端。
我的资源工厂目前看起来像这样:
'使用严格';
angular.module('XXX')
.factory('elements', function (
$resource
) {
return $resource('http://XXX/api/v1/elements/:id',
{
callback: 'JSON_CALLBACK',
id: '@id'
},
{
query: {
method: 'JSONP',
params: {
id: '@id'
}
},
all: {
method: 'JSONP',
params: {}
}
}
);
});
elements.query() 工作正常,但很遗憾 elements.all() 不起作用。我确实注意到在我的网络选项卡中返回的内容中,以 angular.callbacks._2([{... DATA...}]) 开头 - 这对我来说似乎不正确。
更新.....
好的,所以我已经解决了这个问题:
angular.module('XXX')
.factory('element', function (
$resource
) {
return $resource('http://XXX/api/v1/elements/:id',
{
id: '@id',
callback : 'JSON_CALLBACK',
},
{
query: {
method: 'JSONP',
params: {
id: '@id'
}
},
all: {
method: 'JSONP',
isArray: true,
params: {
callback : 'JSON_CALLBACK',
}
}
}
);
});
但是它返回到控制台的 json 作为一个数组进来。我可以解析它以供使用,但现在想知道这是否是最佳实践?