我已宣布AngularJS服务与django-tastypie服务器一起使用:
MyApp.service('AppService', [ '$rootScope', '$resource', function ($rootScope, $resource) {
return $resource("http://localhost:8000/api/v1/app/:id/", {'delete': false}, {
query: { method: "GET", isArray: false, params: {
limit: 1000
} }
});
}]);
然后,在this example之后我尝试保存单个对象并失败:
var apps = AppService.query(function() {
// Read results
console.log(apps.objects[0].name); <-- OK!
// Change and save specific item
var app = apps[0]; <-- Undefined!
app.name = 'Specific App';
app.save();
});
我可以在apps.objects
中使用结果,但apps[0]
未定义。
如何在查询结果中保存特定项? (似乎可以通过official example)
我无法按照我想要的方式解决这个问题。相反,我这样做了:
var _app = AppService.get({id: $scope.selected_app.id}, function () {
_app.attribute = app.attribute;
_app.$save();
});
这与sss解决方案类似。
答案 0 :(得分:1)
您可以尝试该解决方案,但最好的选择是从服务器而不是阵列中只获取一个所需对象。
var apps = AppService.query(function(){ //阅读结果 的console.log(apps.objects [0]。名称); &lt; - 好的!
var app = new AppService();
angular.extend(app, apps.objects[0]);
app.name = 'Specific App';
app.$save();
});
答案 1 :(得分:0)
您的代码明确表示您不希望数组为结果:
isArray: false