扩展AngularJS $resource来映射Rails rest式路由(特别是$save来创建和更新)
Extend AngularJS $resource to map to Rails RESTful Routes (particularly $save to create AND update)
我想映射AngularJS的默认$resource动作:
'get': {method:'GET'}
'save': {method:'POST'}
'query': {method:'GET', isArray:true}
'remove': {method:'DELETE'}
'delete': {method:'DELETE'}
到这5个Rails RESTful路由:
'show': {method:'GET'} -> get
'create': {method:'POST'} -> save
'update': {method:'PUT'} -> save
'index': {method:'GET', isArray:true} -> query
'delete': {method:'DELETE'} -> remove or delete
除了save
,其他都映射得很好。它作为POST
请求在create
上工作。但是,当我保存具有id != null
PUT
请求。# This factory needs a smarter $save() method
myServices.factory 'Message', ['$resource', ($resource) ->
Message = $resource "api/users/:user_id/messages/:id",
user_id: '@user_id'
id: '@id'
,
# update should not be needed
update:
method: 'PUT'
Message
]
myApp.controller "UsersShowCtrl", ["$scope", "$routeParams", "User", "Message", ($scope, $routeParams, User, Message) ->
$scope.user = User.get({id: $routeParams.user_id})
$scope.myMessage = new Message {user_id: $routeParams.user_id}
$scope.submitMyMessage = ->
# This should just be:
# $scope.myMessage.$save()
# rather than:
unless $scope.myMessage.id?
$scope.myMessage.$save()
else
$scope.myMessage.$update()
]
我最终想修改提交的参数以及,以便我可以命名空间他们默认的rails嵌套参数即params[:message]
,而不是将它们直接附加到根params
字符串,但首先我需要知道如何最好地修改$resource。
在我的脑海中,这个save()方法如何?
myServices.factory 'Message', ['$resource', ($resource) ->
Message = $resource "api/users/:user_id/messages/:id",
user_id: '@user_id'
id: '@id'
,
# update should not be needed
update:
method: 'PUT'
Message::save = ->
if @id?
@update()
else
@create()
Message
]
相关文章:
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- 从网站(特别是Trello.com)获取JSON文件
- 使javascript警报/确认对话框更加可见(特别是在Google Chrome浏览器中)
- 特别是将javascript添加到类中,而不是添加到另一个类中
- Piwik自定义插件开发/JQPlot(特别是:Piwik 1.7.1中的seriesPicker)
- 多文件上传,支持所有浏览器,特别是ie7,ie8和ie9
- 如何从浏览器中删除Skype呼叫工具?特别是Chrome
- 编译用于调试的私有api——特别是_enableRemoteInspector
- 如何模拟AngularJS中的构造函数(特别是Date()构造函数)
- 究竟如何getElementsByClassName工作在Chrome?,特别是w.r.t. NodeLists &;延
- 如何轻松运行本地内容(javascript, Flash),特别是在IE11中
- 如何抑制退格时,日期字段日历是活跃的extjs 4,特别是在IE中
- 在包含相对".js"后缀的npm包中使用aurelia-cli需要导入(特别是autobahn)
- Node.js有哪些调试选项?特别是在Visual Studio Code中
- HTML5视频显示时间在Javascript -特别是秒
- AJAX构建和部署环境,特别是javascript和css min,完整版本
- 如何从HTML表中提取数据,特别是<td id=“;单词“>,使用JavaScript
- 将String转换为方法参数,特别是在console.log中
- Vue.js:从DOM中拉入数据——特别是form action属性
- 扩展AngularJS $resource来映射Rails rest式路由(特别是$save来创建和更新)