gpt4 book ai didi

ruby-on-rails - 如何将 angularjs 资源用于 rails/RESTful 路由?

转载 作者:行者123 更新时间:2023-12-04 07:32:06 24 4
gpt4 key购买 nike

我在 rails 应用程序中嵌入了一个 angularjs 应用程序。我正在使用 rails 为名为“Task”的资源提供的 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

我有一个用于任务项目的 angularjs-resource,其中所有任务的 GET 都可以正常工作。 (代码在 CoffeeScript 中)
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 方法插入一个斜杠以获取格式 /api/v1/tasks/:id.json .不幸的是, Angular 将其作为 %2f而不是斜线。我对这段代码的质量并不特别兴奋,因为添加了 slash参数使其可读性降低。

这是我使用此资源的 angularjs Controller :
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 问题,似乎找不到一个好的答案。任何帮助表示赞赏。

最佳答案

看看 restangular,它专门设计用于使对任何 REST api 的 HTTP 动词请求变得简单和容易。

https://github.com/mgonto/restangular

关于ruby-on-rails - 如何将 angularjs 资源用于 rails/RESTful 路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18753969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com