嵌套ng重复不起作用

时间:2014-06-03 15:23:06

标签: angularjs

好的,我在这里工作了两次ng-repeat,第一次(板上板)工作正常,没问题,但第二次(任务中的任务),当我试图获得" { {task.title}}"我什么也得不到,但我可以展示它的所有风格......

编辑 - 这很奇怪,因为" data-ng-if =" task.boardIndex === board.id""工作正常!,但在其中,当我尝试" {{task.title}}"它没有得到任何东西......

这是我的模特:

 $scope.tasks = [{boardIndex: 0, title: "test"}, {boardIndex: 1, title: "test2"}]; 

这是我的代码(它在玉中,好吗?)

section(data-ng-repeat="board in boards", ng-cloak)
        .board_header
            div(data-ng-controller="AddTaskBtnController")
                i.add_task_btn.fa.fa-plus-square-o.fa-2x(ng-click='setSelected(board.id)', ng-class="{icon_add_hover: isSelected(board.id)}")
            h2(data-ng-bind="board.title")
        .content_board
            .task(data-ng-repeat="task in tasks", data-ng-if="task.boardIndex === board.id", data-ng-controller='TaskController', data-ng-hide='modeTask', data-ng-init='setTaskId()')
                .user_icon_task
                    i.fa.fa-user.fa-3x.icon-user-not-selected
                .quest_task
                    .puzzle_task(data-ng-hide='modeTask')
                        i.fa.fa-check-circle-o.fa-lg
                    h2 {{task.title}}
                ul.icons_details_task_wrapper
                    li
                        i.fa.fa-check-circle-o
                        span.icon_counter
                    li.pull_left
                        i.fa.fa-puzzle-piece
                        span.icon_counter
                ul.task_details_wrapper
                    li.task_priority(data-ng-show='goal.selectedDrawAttention', data-ng-click='toggleSelected()', data-ng-class='{draw_attention_selected: goal.selectedDrawAttention }', style='cursor: inherit;')
                        i.fa.fa-eye
                    li.task_priority
                        i.fa
                .task_time_ago
                    span(am-time-ago='message.time')

2 个答案:

答案 0 :(得分:0)

第一个ng-repeat创建一个隔离的范围,因此如果您的任务是父控制器范围的一部分,您需要在任务前面追加$ parent,如

 ng-repeat="task in $parent.tasks"

你的嵌套假定像

这样的模型
$scope.boards=[{name:"board1",tasks:[/*array of tasks*/]}]

如果你有

$ scope.boards = [{名: “委员会1”,/ /]    $ scope.tasks = [{boardIndex:0,title:“test”},{boardIndex:1,title:“test2”}];

您需要父母访问父范围

答案 1 :(得分:0)

这里的问题是因为我的TaskController(在我的BoardsController里面)我设置了这个:

$scope.task                         = {};

所以,每当我在ng-repeat中调用.task(controller = TaskController)时,它就会删除任务中的所有内容......

对不起,谢谢大家!