我一直在使用 rails 并且开始摆弄集成 Angular.js。为了让自己继续前进,我正在制作一个简单的(你猜对了)待办事项应用程序。
在我的 Rails 控制器中,我做了一个简单的操作来在“完成”和“未完成”状态之间切换任务 - 可/tasks/:ID/complete
作为PUT
请求提供。
def complete
@task = Task.find(params[:id])
@task.toggle!(:complete)
respond_with @task
end
我的视图列出了所有任务,并在链接旁边显示它们的名称,单击该链接时,我想为该任务调用“完成”操作。
<ul>
<li ng-repeat="task in tasks">
<a href="javascript:;" ng-click="completeTask(task.id)" class="complete-{{task.complete}}"></a>
{{task.name}}
</li>
</ul>
最后,在我的 js 控制器(咖啡脚本)中:
app = angular.module("TaskList", ["ngResource"])
@ListCtrl = ($scope, $resource) ->
Task = $resource("/tasks/:id", {id: "@id"}, {
update: {method: "PUT"}
complete: {method: "PUT"}
})
$scope.tasks = Task.query()
$scope.completeTask = (task_id) ->
Task.complete(task_id)
我不确定“this”是否是 Angular 中的可用选项,但我在文档方面遇到了一些问题。当我掌握最佳实践时,有人能指出我正确的方向吗?
谢谢!