Рассмотрим этот ребенок компонент:Hostbinding ngIf в Angular2
@Component({
selector: 'mySelector',
template: `<ion-spinner [ngIf]="ngif"></ion-spinner>`
})
export class MyDirective {
ngif: boolean;
constructor() {}
@Input() serverWaiting:boolean = true;
@HostBinding('ngIf')
ngOnChanges() {
this.ngif = !this.serverWaiting ? true : null;
}
Хост шаблона компонента:
<mySelector [serverWaiting]></mySelector>
Хост Компонент:
@Component({
templateUrl: 'hostComp.html',
directives: [myDirective]
})
export class HostComp {
serverWaiting = true;
}
Тем не менее, Spinner не показан. Любая идея, что я делаю неправильно?
Источники: https://angular.io/docs/ts/latest/api/common/index/NgIf-directive.html
При использовании '[ngIf] = "ngIf"', я получаю 'myDirective - встроенный шаблон: 3: 12 ORIGINAL ИСКЛЮЧЕНИЕ: Нет поставщика для TemplateRef'!. Использование '* ngIf' избавляет от ошибки, но все равно показывается счетчик. – nottinhill
Это, вероятно, потому, что имя свойства 'ngIf' - плохая идея. Вместо этого используйте другое имя. –
Привет, теперь работает даже с именем элемента экземпляра директивы 'ngIf'. Проблема была отрицанием до 'this.serverWaiting', такие работы:' this.ngif = this.serverWaiting? true: null; '. – nottinhill