Angularjs 使用嵌套的ngInclude绑定中断

Angularjs 使用嵌套的ngInclude绑定中断,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我有一个任务列表,其中可能有子任务等等。这是嵌套结构,我不想加载整个树,我只想加载根级别,然后根据用户需求加载每个分支。因此,我使用嵌套ng includes和ng init传递TAK列表,下面是模板: <div ng-repeat="task in tasks" class="task"> {{task.name}} <a href ng-click="expand(task)">expand</a> <a href ng-click="r

我有一个任务列表,其中可能有子任务等等。这是嵌套结构,我不想加载整个树,我只想加载根级别,然后根据用户需求加载每个分支。因此,我使用嵌套
ng includes
ng init
传递TAK列表,下面是模板:

<div ng-repeat="task in tasks" class="task">
  {{task.name}}
  <a href ng-click="expand(task)">expand</a>
  <a href ng-click="remove(task, tasks)">remove</a>
  <div ng-show="task.subtasks" ng-init="tasks = task.subtasks" ng-include="'tasks.html'"></div>
</div>
当用户扩展分支和子任务被加载时,它不会在视图中更新,所以我假设ng包括创建新的子范围。我如何处理这个问题


这是我不熟悉的咖啡剧本。但问题是,分配
task=task.subtask
的ng init不起作用,因为在ng init期间,由于异步远程调用,task.subtask未定义

解决此问题的一种方法是将每个子任务数组的任务数据设置为空
[]

然后,当您获得子任务数据时,填充此数组,而不是重新分配。比如

//For each subtask item from server result

//task.subtasks.push(subtask);

这是我测试你的猜测的地方,但这没有帮助。我认为,
task.subtask
未定义这一事实并不是问题,$scope.tasks在某一点上也未定义,但这不会导致问题……如果查看中生成的html,会生成子任务,但它们是隐藏的。
//For each subtask item from server result

//task.subtasks.push(subtask);