У меня есть список задач, которые могут иметь подзадачи и т. Д. Это вложенная структура, и я не хочу загружать целые деревья, я хочу загрузить только корневой уровень, а затем загружать каждую ветвь по требованию пользователей. Поэтому я использую вложенности ng-includes
и ng-init
передать список TAKS и вот шаблон:Связывание перерывов с вложенным ngInclude
<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>
Контроллер:
app.controller 'MainCtrl', ($scope, $http) ->
$http.get('tasks.json').then (tasks) ->
$scope.tasks = tasks.data
$scope.expand = (task) ->
if !task.subtasks
$http.get("subtasks.json").then (tasks) ->
task.subtasks = tasks.data
task.expanded = yes
$scope.remove = (task, list) ->
list = _.reject list, id:task.id
Когда пользователь расширить ветку и подзадач загружался, он не обновления, поэтому я предполагаю, что ng-include создаст новую область для детей. Как я могу справиться с этой проблемой?
Вот шлепнуть для этого http://plnkr.co/edit/AkIZV1PkD5a3AzCBen8R
Вот шлепнуть, где я проверил ваше предположение http://plnkr.co/edit/jUSli6m1uz63BJj7Rom3, но это не помогает. Я думаю, что факт, что 'task.subtasks' не определен, не является проблемой, $ scope.tasks также не определен в какой-то момент, но это не приводит к проблемам ... – SET
Если вы посмотрите на сгенерированный html в, , но они скрыты. – Chandermani
Действительно, извините, моя вина. Thanx, он работает – SET