В Angular, когда вы используете [input]="data"
в своем HTML, data
- это, по сути, шаблонное выражение.Шаблонные выражения похожи на JavaScript.
Angular выполняет data
и назначает его свойству цели привязки, здесь input
.Это позволяет нам динамически изменять значение, назначенное для input
из компонента, путем изменения data
.
Это похоже на интерполяцию в AngularJS, где для отображения {{data}}
в вашем HTML, data
должен быть определен в вашем контроллере.
В вашем случае [recordId]="_INSERT_"
, recordId - это цель привязки Input()
, а _INSERT_
- это выражение вашего шаблона.Angular пытается выполнить это выражение, но так как вы не определили _INSERT_
в своем компоненте, оно оценивается как undefined
.
Если вам требуется передать константную строку в @Input()
, просто передайте строкукак выражение вроде так [recordId]="'This is just an example'"
.Если вам требуется, чтобы он был динамическим, вам следует присвоить значение _INSERT_
в вашем компоненте.
Поскольку выражение шаблона аналогично JavaScript, вы можете даже передать условное выражение, если требуется, [recordId]="recordExists ? '1' : null"
Надеюсь, что это ответ на ваш вопрос.
Для получения дополнительной информации, вот ссылка на документацию: https://angular.io/guide/template-syntax#template-expressions