2016-08-05 5 views
0

Я не могу определить синтаксис привязки данных для привязки массива к таблице. У меня есть родительский TodoComponent, который передает todoList дочернему компоненту TodoListComponent. Детский компонент (TodoListComponent) правильно принимает данные, но не привязан к шаблону.angularjs 1.5 привязка данных к массиву

Родитель компонент

const TodoComponent = { 
    bindings: { 
     todos: '<' 
    }, 
    template: ` 
     <div class="todo"> 
      <table> 
       <tbody> 
        <todo-list todos="$ctrl.todos"></todo-list> 
       </tbody> 
      </table> 
     </div> 
    ` 
}; 

Ребенок компонент

const TodoListComponent = { 
    bindings: { 
     todos: '<', 
    }, 
    template: ` 
     <tr ng-repeat="todo in $ctrl.todos"> 
      <td>{{ todo.text }}</td> 
     </tr> 
    ` 
}; 

Если я просто распечатать JSON отображает данные, так что я знаю, что данные возвращаются

template: ` 
    <pre>{{$ctrl.todos|json}}</pre> 
    ` 
+0

вы первый шаблон должен пройти '$ ctrl.todoData' как' ' –

+0

@PankajParkar я просто редактировал вопрос также показать мой контроллер. Как вы можете видеть, я устанавливаю todos из todoData. И, как я уже упоминал, данные передаются дочернему компоненту. Его привязка данных не работает. – BeesNees

+0

'this.todos' внутри функции $ onChanges не является' this.todos' контроллера –

ответ

0

это похоже, что у меня не может быть дочерний шаблон только для строки таблицы с таблицей в родительском шаблоне. Когда я переместил всю таблицу в дочерний шаблон, он сработал. Если кто-то еще может опубликовать альтернативу, я буду рад принять это как действительный ответ.

0

У меня есть аналогичная проблема, и решена с двусторонней привязкой данных «=».

Вы пытались его использовать?

... 
    bindings: { 
      todos: '=' 
     } 
... 
+0

Извините, я не вижу смысла в этом вопросе. Зачем мне нужна двусторонняя привязка? – BeesNees

 Смежные вопросы

  • Нет связанных вопросов^_^