Ответ 1
попробуйте
@Input() name: string = 'noname';
Скажем, у меня есть компонент, который отобразит свойство name
, поэтому он примерно будет выглядеть следующим образом:
import {Component, Input} from 'angular2/core';
@Component({
selector: 'demo',
template: `<div>{{name}}</div>`,
styles: [``],
})
export class Demo {
@Input() name: string;
}
попробуйте
@Input() name: string = 'noname';
Я думаю, вы можете использовать свою идею использования шаблона. Так было бы:
В компоненте:
@Input () name:String;
В шаблоне:
<div>{{ name != '' ? name : '[no name]' }}</div>
Это проверит, будет ли имя пустым, и используйте "[no name]" или вставьте имя, если имя передано.
В компоненте вы должны инициализировать:
@Input () name:String='';
В HTML вы можете использовать:
{{ name ===''? 'empty string': name }}
Вы можете перехватить @Input()
с помощью сеттера и поддерживать его под частным полем. В setter вы делаете nullcheck, поэтому поле устанавливается только на ненулевое значение. Как последний, вы привязываете свой шаблон к частному, в котором вы установили начальное значение.