【发布时间】:2013-11-30 02:41:40
【问题描述】:
我刚刚开始使用 AngularJS,我喜欢它。
但是 - 我需要使用 $resource 将项目保存到我的数据库中,然后返回包含数据库中新创建项目的值的对象(尤其是数据库分配的 ID)。
我找到了几篇描述这一点的文章 - 但它们似乎都不适合我:(
我有一个非常简单的设置:
var app = angular.module("todoApp", ['ngResource', 'ngAnimate']);
app.factory("TodoFactory", function ($resource) {
return $resource('.../api/todo/:id', { id: '@id' }, { update: { method: 'PUT' }});
});
var todoController = app.controller("TodoController", function ($scope, TodoFactory) {
$scope.todos = [];
init();
function init() {
$scope.todos = TodoFactory.query();
}
$scope.addTodo = function () {
TodoFactory.save($scope.item, function () {
// Success
console.log($scope.item); // <--- HERE'S MY PROBLEM
$scope.todos.push($scope.item);
$scope.item = {};
},
function () {
// Error
});
};
但是当我调用 TodoFactory.save 时,$scope.item 不包含数据库中的 Id 属性 - 只有它在调用 save 时具有的值。
如何让我的设置返回包含所有数据库生成值的更新对象?
如果有人能指出我正确的方向,将不胜感激:)
更新:我刚刚查看了我提供的 API 的源 - 保存方法不会更新插入的对象。 在我解决了这个“小”问题之后,和平人的例子就像一个魅力。
很抱歉给大家带来不便 - 但非常感谢您的回复! :)
【问题讨论】:
标签: javascript angularjs callback