Angularjs 如何定义角度$scope上的隐藏属性
考虑:Angularjs 如何定义角度$scope上的隐藏属性,angularjs,Angularjs,考虑: $scope.taylor = { firstName: 'taylor', lastName: 'mcintyre', order: 22 } 使用$resource,我可能希望保存以下内容: people.save($scope.taylor); 但是,我不希望属性“order”与请求一起发送 Angular会忽略以“$$”为前缀的属性,以供其自身内部使用,但以这种方式为自己的隐藏属性添加前缀感觉不正确,例如 $scope.taylor = {
$scope.taylor = {
firstName: 'taylor',
lastName: 'mcintyre',
order: 22
}
使用$resource,我可能希望保存以下内容:
people.save($scope.taylor);
但是,我不希望属性“order”与请求一起发送
Angular会忽略以“$$”为前缀的属性,以供其自身内部使用,但以这种方式为自己的隐藏属性添加前缀感觉不正确,例如
$scope.taylor = {
firstName: 'taylor',
lastName: 'mcintyre',
$$order: 22
}
删除不需要的属性是常识性的解决方案,但是Angular有更好的解决方案吗?我知道您正在寻找一种“Angular方式”来排除关键点,但似乎不支持这一点。文档说明:
带有前导$字符的属性将被剥离,因为angular在内部使用此符号。
这听起来像是使用$
应该保留给angular,而不是我们在对象中使用
鉴于这种情况,我创建了一个示例,展示了使用类似的库可以多么容易地完成这项工作
我相信有更优雅的方法可以做到这一点,但我的例子确实实现了我所理解的您的主要目标
我在文件中包含了下划线JS库,并添加了以下代码:
var person = {
firstName: 'John',
lastName: 'Smith',
order: 22,
excludeKeys: [
'order',
'excludeKeys'
]
};
var personCopy = _.omit(person, person.excludeKeys);
console.log('person: ', person);
console.log('person copy: ', personCopy);
我希望这是有用的。Ehh……我不这么认为……您可以通过数组定义要忽略的属性,然后将该函数的返回对象传递给服务\是的,我就是这么做的。这似乎是一个反复出现的问题。或者,更确切地说,这似乎是一个常见的问题。为什么要发送带有请求的作用域而不是存储在作用域中的对象?我正在发送存储在$scope$scope.taylor上的对象。我不发送$scope本身。也许我误解了您从angularjs 1.3.0开始,只有以$$字符开头的属性才会被点画。