【发布时间】:2017-02-27 10:07:58
【问题描述】:
这是我的数据:
$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中找到指定的id
我执行这个函数后deleteNode($scope.datas,5)
它确实找到了正确的 obj,但是 $scope.datas 没有改变,为什么?
找到答案了,我把
deleteNode函数改成自爆
deleteNode = (node,id) ->
if node.id == id
$timeout ->
node = {}
return
if node.children
for rows,i in node.children
if rows.id == id
node.children.splice(i,1)
return
else
deleteNode(rows,id)
【问题讨论】:
标签: javascript angularjs foreach