【发布时间】:2014-01-06 16:56:25
【问题描述】:
现在,我可以创建对象并通过 json api 将它们保存到 rails 数据库。这是一个简单的待办事项列表应用程序,当我添加一个对象时,它会进入输入字段上方的待办事项列表。我还可以查询索引视图上的所有对象并列出我所有的待办事项。
当我点击每个待办事项旁边的复选框时,它应该将它的 :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放在param哪里?
-
你指的是资源方法吗?把它放在那里,因为我正在关注一个 railscast。
标签: javascript ruby-on-rails angularjs