AngularJS-深层对象'属性删除
AngularJS - Deep object' property deletion
我知道如何使用$parse
服务设置对象的"deep"属性,就像在这篇文章中一样。
但是如何删除深层属性?不将其分配给具有以下内容的null
:
$parse('very.very.deep.property').assign($scope, null);
,但实际上删除它,就像我们在JavaScript:中做的那样
delete $scope.very.very.deep.property;
恐怕您所寻找的没有Angular服务/函数。但是您仍然可以实现以下内容来满足您的需求:
function Ctrl($scope,$parse){
var path = 'very.very.deep.property';
var partials = path.split('.');
var deepKey = partials.pop(); //Extract the key name from your path
var deepPath = partials.join('.'); //Build the parent's path
var deep = $parse(deepPath);
var prop = $parse(path);
prop.assign($scope, "I'm so deep");
delete deep($scope)[deepKey]; //Evaluate the deep path against your scope and delete the key
console.log(deepKey, $scope.very.very.deep)
}
这里有小提琴。希望这能派上用场。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 在不知道深度或父属性的情况下从对象中删除属性
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如何从对象中删除属性
- 如何选择多个输入字段并删除所需的属性
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 如果另一个属性相同,请删除该属性
- 为什么toStaticHTML删除data-*属性
- 使用jQuery添加和删除属性
- AngularJS-深层对象'属性删除
- 无法读取空放置区的属性“删除子项”
- 如何使用jquery按数据属性删除li标签
- JavaScript 属性删除如果为假,则不删除,如果为真循环
- 如何使用HTML数据集属性删除data-*属性
- Javascript -将属性拉入数组/根据属性删除项
- 如何使用select标签的title属性删除选中的选项
- jquery:通过指定数据属性删除元素
- 基于属性删除对象
- javascript属性删除