Dans Angular 2 composant j'ai authbox.component.ts
import {Component} from 'angular2/core';
import {COMMON_DIRECTIVES} from 'angular2/common';
import {Credentials} from './credentials'
@Component({
selector: 'authbox',
template: `<div>
<div class="login-panel" *NgIf="!IsLogged">
<input type="text" *NgModel="credentials.name" />
<input type="password" *NgModel="credentials.password" />
<button type="button" (click)="signIn(credentials)">→| Sign In</button>
</div>
<div class="logged-panel" *NgIf="IsLogged">
<span>{nickname}</span> <button type="button" (click)="signOut()">|→ Sign out</button>
</div>
</div>`,
directives: [COMMON_DIRECTIVES]
})
export class AuthBoxComponent {
private _isLogged: boolean;
get IsLogged(): boolean {
return this._isLogged
}
set IsLogged(value: boolean) {
this._isLogged = value;
}
public credentials: Credentials;
}
Dans le navigateur, j'ai des erreurs "ne peut pas se lier à 'NgModel' car ce n'est pas une propriété native connue" et "ne peut pas se lier à 'NgIf' car ce n'est pas une propriété native connue ".
J'utilise la version bêta 8.
essayez d'utiliser [(ngModel)]
plutôt que *NgModel
et *ngIf
au lieu de *NgIf
<span>{{nickname}}</span> <button type="button" (click)="signOut()">|→ Sign out</button>
export class AuthBoxComponent {
nickname="guest";
...
}
En général, l'erreur can't bind to xxx since it isn't a known native property
se produit lorsque vous avez une faute de frappe dans votre code HTML lorsque vous essayez d'utiliser une directive d'attribut ou lorsque vous essayez de configurer une liaison de propriété.
Les exemples courants sont lorsque vous manquez un *
ou un #
ou let
ou utilisez in
à la place de of
avec le Angular construit- dans les directives structurelles:
<div ngIf="..." // should be *ngIf
<div ngFor="..." // should be *ngFor="..."
<div *ngFor="let item in items" // should be "let item of items"
<div *ngFor="item of items" // should be "let item of items"
Une faute d’orthographe ou un cas erroné génèrera également le problème:
<div *ngFer="..."
<div *NgFor="..."
Une autre raison est que vous spécifiez une propriété qui n'existe pas sur l'élément ou le composant DOM:
<div [prop1]="..." // prop1 isn't a valid DOM property for a div
<my-comp [answr]="..." // typo, should be [answer]
Pour les fautes de frappe avec les directives intégrées Angular, cette dernière ne correspondant à aucun des sélecteurs de directives intégrées, Angular essaie de configurer une liaison à une propriété du DOM. élément (le div
dans les exemples ci-dessus) avec le nom de la typo. Cela échoue car une div
n'a pas de propriété native ngIf
ou ngFer
ou prop1
DOM.
-
Pour les attributs (pas les propriétés), vous devez utiliser une liaison d'attribut, par exemple pour height
attribut de svg
: <svg [attr.height]="myHeightProp">