gpt4 book ai didi

javascript - AngularJS 从 postdata 中删除数据

转载 作者:行者123 更新时间:2023-11-28 08:58:35 26 4
gpt4 key购买 nike

我正在遵循 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/

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