我跟随Angular JS Tutorial,我想知道是否有另一种方法可以修改它。
目前,我正在使用定义为的工厂返回数据:
angular.
module('core.card').
factory('Card', ['$resource',
function($resource){
return $resource('cards/:cardId.json', {}, {
query: {
method: 'GET',
params: {cardId: 'cards'},
isArray: true
}
});
}
]);
这一切都很好并且有效,因为cards.json
拥有所有可用的卡片,这正是我想要归还的内容。
他们正在描述的方法(例如处理RESTful
服务)假定有多个其他特定的JSON文件可以根据路由返回。我理解如何在实际服务中使用它,但是我想说在我绑定到我的模块之前我想要更改返回的JSON数据,所以我没有一堆额外的数据,我不会这样做#&# 39;需要吗?
让我们说/cards/foo.json
包含这样的内容:
[{
"id": "foo",
"name": "Bar",
"img": "foobar.png",
"unnecessaryKey": "remove me"
}]
但是我在哪里写一个只返回的函数:
[{
"id": "foo",
"name": "Bar",
"img": "foobar.png"
}]
我是否会在query
函数所在的位置分配它,例如:
...
return $resource('cards/:cardId.json', {}, {
query: {
method: 'GET',
params: {cardId: 'cards'},
isArray: true
},
alterReturnedData: {
// doStuffToFormatData
}
});
...
或者最好只在Component
中修改它,因为我现在在做什么?
function alterReturnedData(data){
// doStuffToFormatData
}
var unmodified = Card.get({cardId:'foo'}, function(){
self.data = alterReturnedData(unmodified);
});
我觉得最好将服务中的数据返回到实际需要的组件控制器,而不是在那里有很多逻辑来扭曲它。
我的方法可以在Controller中运行此功能吗? 或者最好在服务中改变它,我该怎么做?