2016-12-13 3 views
0

Я получаю сообщение от angular2 когда component+template визуализируется:angular2: свойство привязки не найден

не может связываться с «типа», так как это не известное свойство «боевой готовности».

Я создал этот компонент:

interface Alert { 
    type: string; 
    msg: string; 
} 

@Component({ 
    selector: 'signin', 
    styleUrls: [ './signin.style.scss' ], 
    templateUrl: './signin.template.html', 
    encapsulation: ViewEncapsulation.None, 
    host: { 
    class: 'signin-page app' 
    } 
}) 
export class Signin implements OnInit { 

    private form:FormGroup; 
    private alerts: Array<Alert>; 

    constructor(private fb: FormBuilder, private commty: UsersService) {} 

    ngOnInit():void { 
     //... 
    } 

    private addAlert(message: string): void { 
     this.alerts.push({type: 'danger', msg: message}); 
    } 

    public closeAlert(index): void { 
     this.alerts.splice(index, 1); 
    }; 
} 

Соответствующий код HTML шаблона:

<alert *ngFor="let alert of alerts; let i = index" [type]="alert.type + ' alert-sm'" (close)="closeAlert(i)" dismissible="true"> 
    <div [innerHTML]="alert.msg"></div> 
</alert> 

ответ

0

типа не по умолчанию атра из HTML DOM элемента (предупреждение дома является shadow dom)

https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM

<alert *ngFor="let alert of alerts; let i = index" [attr.type]="alert.type + ' alert-sm'" (close)="closeAlert(i)" dismissible="true"> 
    <div [innerHTML]="alert.msg"></div> 
</alert> 
+0

Спасибо @anshu. Я не совсем понимаю, что вы имеете в виду с вашим комментарием. Я не ниндзя, использующий угловой2. Не могли бы вы объяснить мне немного лучше, что вы имеете в виду с '[attr.type] ='? – Jordi

+0

alert is not html element, и anguler делает его элементом sudo element, который создается угловыми, поэтому атрибуты этих элементов будут работать по-разному. пожалуйста, прочитайте для получения дополнительной информации https://toddmotto.com/emulated-native-shadow-dom-angular-2-view-encapsulation – anshuVersatile