Я не думаю, что кто-то может дать очень точный ответ здесь (может быть, кто-то из команды Angular CLI), однако я пришел к выводу, что средство визуализации компонентов полностью игнорирует ключевое слово this
в тех местах, где оно кажется действительным (за некоторыми исключениями).
Proof
<input #heroInput value="0">
This prints the component JSON without heroInput: {{ this | json }}
<input #heroInput value="0">
This prints 0: {{ this.heroInput.value }}
<div *ngFor="let val of [1,2,3]">
<input #heroInput [value]="val">
Overrides heroInput with current value: {{ this.heroInput.value }}
</div>
This prints 0: {{ this.heroInput.value }}
Из вышесказанного можно предположить, что this
аналогично AngularJS (angular 1) scope
, где scope
содержит свойства компонента.
Это не объясняет, почему heroInput еще не указан в this | json
.
Однако следующее полностью нарушено:
{{ this['heroInput'].value }}
Выдает ошибку: не может получить value
из неопределенного. Должно, но не должно работать, если (единственное объяснение) this
просто игнорируется в каждом случае, но
{{ this | json }}
где это относится к компоненту, потому что это единственный способ отладить весь объект компонента из шаблона. Возможно, есть и другие исключения.
Обновлено stackblitz