Plunker здесь: https://plnkr.co/edit/te67zdtkVkNCUzEtW5XO?p=preview см app.tsУгловое 2 - Локальная переменная/Template Ссылка Переменная с * ngIf - ТОЛЬКО первый элемент массива не имеет обязательной силы
фона:
Родительский компонент имеет массив и отображает один элемент в массиве. ChildComponent - это список, отображающий массив, с переменной selectedIdx
, которая задается при щелчке элемента.
selectNumber(idx: number) {
this.selectedIdx = idx;
}
ParentComponent получает значение selectedIdx
от ребенка, сохраняя ребенка в качестве локальной переменной #child
и доступ к нему с помощью child.selectedIdx
.
Проблема:
связывания между selectedIdx
в компоненте дочернего и родительского компонента доступа он отлично работает для каждого элемента в массиве, кроме от первого (индекс 0) - если вы нажмете 1
, в элемент с индексом 0, исчезает Selected Number In Parent: _
.
Это означает, что *ngIf
является фальшивым, что означает, что selectedIdx
является null
.
Однако, это не так, поскольку когда я устанавливаю точку останова в функции selectNumber()
в дочернем компоненте, this.selectedIdx
устанавливается в 0. Должно быть что-то неловкое происходит с родителем, получающим значение 0, а затем мышление это нулевое значение?
Любая помощь приветствуется, большое вам спасибо.
основе: https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#parent-to-child-local-var
Можете ли вы поделиться сокращенным и минимальным образцом кода проблемы? – shusson
Привет, shusson. Я сделал массив простым массивом чисел, если это упростит проблему: https://plnkr.co/edit/te67zdtkVkNCUzEtW5XO?p=preview – Helen
Похоже, что у вас есть хорошие ответы, но то, что я изначально означало на самом деле показать минимальный шаблон и компонент в вопросе. – shusson