Railsアプリにangularjsアプリが埋め込まれています。「タスク」という名前のリソースに対して、Rails が提供する RESTful メソッドを使用しています。私が扱っているルートは次のとおりです。
GET /api/v1/tasks.json
POST /api/v1/tasks.json
GET /api/v1/tasks/:id.json
PUT /api/v1/tasks/:id.json
DELETE /api/v1/tasks/:id.json
すべてのタスクの GET が正常に機能する Task アイテム用の angularjs-resource があります。(コードはコーヒースクリプトです)
App.factory "Task", ["$resource", "$cookies", ($resource, $cookies) ->
$resource "/api/v1/tasks:slash:type.json?api_token=:api_token",
api_token: $cookies.api_token
type: '@id'
,
all:
method: "GET"
isArray: true
create:
method: "POST"
update:
method: "PUT"
params:
slash: "/"
remove:
method: "DELETE"
]
ここでわかるように、PUT メソッドにスラッシュを挿入して format を取得しようとしています/api/v1/tasks/:id.json
。残念ながら、角度はこれを%2f
スラッシュではなく入れます。slash
パラメータを追加するとコードが読みにくくなるため、このコードの品質には特に満足していません。
このリソースを使用する angularjs コントローラーは次のとおりです。
taskController = App.controller 'TasksController', ($rootScope, $scope, $http, $cookies, Task) ->
$scope.message = $cookies.api_token
$scope.tasks = Task.all()
$scope.selectedTask = null
$scope.editTask = (task) ->
$scope.selectedTask = task
$scope.editDescription = task.description
$rootScope.date = new Date(task.dueDate)
console.log($rootScope.dt)
$scope.taskModal = true
$scope.saveTask = ->
$scope.taskModal = false
$scope.selectedTask.$update()
# Task.update({taskID: $scope.selectedTask.id, task: $scope.selectedTask})
console.log 'Implement saving...'
$scope.tasks = Task.all()
$scope.cancelTask = ->
$scope.taskModal = false
$scope.taskModalOptions = {
dialogFade: true
}
taskController.$inject = ['$rootScope', '$scope', '$http', '$cookies', 'Task']
基本的に、私の質問は、angularjs リソースを使用して従来の rails/RESTful URL 形式を再現する方法の例を誰かが持っているかどうかです。私はいくつかの StackOverflow の質問を見てきましたが、良い答えが見つからないようです。どんな助けでも大歓迎です。