私はしばらくレールを使用しており、Angular.js の統合をいじり始めています。自分自身を始めるために、単純な (ご想像のとおり) todo アプリを作成しています。
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)
「これ」がAngularで利用可能なオプションであるかどうかはわかりませんが、ドキュメントに問題があります. ベストプラクティスを把握している間、誰かが私を正しい方向に向けることができますか?
ありがとう!