Как установить параметр по умолчанию для @Input в Angular2?

Скажем, у меня есть компонент, который отобразит свойство name, поэтому он примерно будет выглядеть следующим образом:

import {Component, Input} from 'angular2/core';

@Component({
  selector: 'demo',
  template: `<div>{{name}}</div>`,
  styles: [``],
})
export class Demo {
  @Input() name: string;
}

Ответы

Ответ 1

попробуйте

@Input() name: string = 'noname';

Ответ 2

Я думаю, вы можете использовать свою идею использования шаблона. Так было бы:

В компоненте:

@Input () name:String;

В шаблоне:

<div>{{ name != '' ? name : '[no name]' }}</div>

Это проверит, будет ли имя пустым, и используйте "[no name]" или вставьте имя, если имя передано.

Ответ 3

В компоненте вы должны инициализировать:

@Input () name:String='';

В HTML вы можете использовать:

{{ name ===''?  'empty string': name }}

Ответ 4

Вы можете перехватить @Input() с помощью сеттера и поддерживать его под частным полем. В setter вы делаете nullcheck, поэтому поле устанавливается только на ненулевое значение. Как последний, вы привязываете свой шаблон к частному, в котором вы установили начальное значение.