Javascript 角度:使用角度删除obj中的某些属性
这是我的数据:Javascript 角度:使用角度删除obj中的某些属性,javascript,angularjs,foreach,Javascript,Angularjs,Foreach,这是我的数据: $scope.datas = { "name": "000", "id" : 1, "type" : "record" "children": [ {name:111,id:2,children:[ {name:444,id:5,children:[]} ]} {name:222,id:3,children:[]} {name:333,id:4,ch
$scope.datas = {
"name": "000",
"id" : 1,
"type" : "record"
"children": [
{name:111,id:2,children:[
{name:444,id:5,children:[]}
]}
{name:222,id:3,children:[]}
{name:333,id:4,children:[]}
]
}
deleteNode = (node,id) ->
if node.id == id
$timeout ->
console.log 'findNode',node
node = null
return
if node.children
for rows,i in node.children
if rows.id == id
$timeout ->
console.log 'findNode',rows
rows = null
else
deleteNode(rows,id)
这是我的删除功能:
$scope.datas = {
"name": "000",
"id" : 1,
"type" : "record"
"children": [
{name:111,id:2,children:[
{name:444,id:5,children:[]}
]}
{name:222,id:3,children:[]}
{name:333,id:4,children:[]}
]
}
deleteNode = (node,id) ->
if node.id == id
$timeout ->
console.log 'findNode',node
node = null
return
if node.children
for rows,i in node.children
if rows.id == id
$timeout ->
console.log 'findNode',rows
rows = null
else
deleteNode(rows,id)
我需要在我的$scope.data
执行此函数后,deleteNode($scope.datas,5)
它确实找到了正确的obj,但是$scope.data
没有改变,为什么
找到答案后,我将deleteNode
函数更改为
尝试在对对象进行更改后返回该对象,即
deleteNode = (node,id) ->
if node.id == id
$timeout ->
console.log 'findNode',node
node = null
// return the node
return node;
if node.children
for rows,i in node.children
if rows.id == id
$timeout ->
console.log 'findNode',rows
rows = null
// return the node
return node;
else
deleteNode(rows,id)
尝试使用
deleteNode = (node,id) ->
if node.id == id
$timeout ->
console.log 'findNode',node
node = null
$timeout(angular.noop)
return
if node.children
for rows,i in node.children
if rows.id == id
$timeout ->
console.log 'findNode',rows
rows = null
$timeout(angular.noop)
else
deleteNode(rows,id)