现在,我可以创建对象并通过json api将它们保存到rails数据库。这是一个简单的待办事项列表应用程序,当我添加一个对象时,它会进入输入字段上方的待办事项列表。我也能够查询索引视图上的所有对象,并列出我所有的待办事项对象。无法更新角度对象
当我点击每个todo项目旁边的复选框时,它应该将其:done属性更改为true,以便在单击“清除”按钮(这是clearCompleted
函数)后我不再显示它。
这里是我的js代码
angular.module("Todo", ["ngResource"])
function TodoController($scope, $filter, $resource) {
Todo = $resource("/todos.json", {id: "@id"}, {update: {method: 'PUT'}})
$scope.todos = Todo.query()
$scope.getTotalTodos = function() {
return $scope.todos.length;
};
$scope.clearCompleted = function() {
Todo.save({done:true})
$scope.todos = $filter("filter")($scope.todos, {done:false});
};
$scope.addTodo = function() {
entry = Todo.save({title:$scope.newTodo.title, importance:$scope.newTodo.importance, description:$scope.newTodo.description, done:false})
$scope.todos.push(entry);
$scope.newTodo.title = '';
$scope.newTodo.importance = '';
$scope.newTodo.description = '';
};
}
正在发生的事情是,而不是更新该对象在数据库中,它正在创造一个全新的待办事项,只是给它的:done => true
属性。这很有意义,因为在clearCompleted
函数中,它看起来像我们正在创建一个不更新现有对象的对象。
如何更新数据库中的记录呢?
你在哪里把ID在参数? – apneadiving
你指的是资源方法吗?有它,因为我正在跟踪一个railscast。 – user2184718