【发布时间】:2013-04-24 21:31:09
【问题描述】:
我使用 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 中的可用选项,但我在文档方面遇到了一些问题。在我掌握最佳实践的同时,谁能指出我正确的方向?
谢谢!
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller angularjs coffeescript