javascript - AngularJS 从 postdata 中删除数据

标签 javascript ruby-on-rails json angularjs coffeescript

我正在遵循 mightygio ( http://mightygio.com/2013/05/integrating-rails-and-angularjs-part-3-rest-and-angular-resource ) 的示例,并希望在更新时简化 postData。

目前我有这个

  $scope.update = ->
    Letter.update
      id: $stateParams['id']
    ,
      letter:
        subject: $scope.letter.subject
        body: $scope.letter.body

    # success
    , (response) ->
      $location.path "/letters"

    # failure
    , (response) ->

当我有一个包含大量数据的大型表单时,这会变得相当长并且难以维护。如果我可以像这样传递 $scope.letter 那就更好了:

  $scope.update = ->
    Letter.update
      id: $stateParams['id']
    ,
      letter: $scope.letter

    # success
    , (response) ->
      $location.path "/letters"

    # failure
    , (response) ->

我遇到的问题是,在更新 create_at、id 和 Updated_at 键时,我无法将某些属性传递到后端。

如何在将 JSON 发送到服务器之前删除这些 key ?

更新

我想我可以使用这样的东西,但是有更好的方法吗?

  $scope.update = ->
    letter = {}
    #  Strip out id, created_at & updated_at
    angular.forEach($scope.letter, (value,key) ->
      if(key!='id' && key!='created_at' && key!='updated_at')
        letter[key]=value
    ,letter)

    Letter.update
      id: $stateParams['id']
    ,
      letter: letter
    # success
    , (response) ->
      $location.path "/letters"

    # failure
    , (response) ->

最佳答案

强烈建议使用众所周知的高性能实用程序库,例如 Lo-DashUnderscore 。使用其中任何一个,您都可以轻松选择包含 key 白名单或排除黑名单 key 列表。

白名单示例:

_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age');
=> {name: 'moe', age: 50}

黑名单示例:

_.omit({name: 'moe', age: 50, userid: 'moe1'}, 'userid');
=> {name: 'moe', age: 50}

PS如果你使用众所周知的Restangular库决定变得更加容易,因为它已经依赖于 Lodash(或 Underscore)。

关于javascript - AngularJS 从 postdata 中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094224/

相关文章:

ruby-on-rails - OpenSSL::SSL::SSLError(主机名 "smtp.mandrillapp.com"与服务器证书不匹配)

ruby-on-rails - 按地理位置排序 Solr/sunspot 搜索结果

ruby - 将 cURL 请求转换为 Ruby post 请求

jquery - Flask View 的 JSON "POST"不起作用

Javascript - 错误对象的名称和消息属性在哪里?

javascript - 数据传输在 IE11 中无法正常工作

javascript - Lodash remove 根据 id 属性从数组中删除一个对象

javascript - 如何检测 SVG 中的鼠标悬停矩形

ruby-on-rails - RSpec 查看测试和 content_for :title

objective-c - RestKit 是唯一具有 JSON 到 Objective-C 对象映射的框架吗?