2016-03-11 11 views
47

olmadığından x bağlamak değil miyim ben authbox.component.ts tarayıcısında Eğik 2: o Açısal 2 bileşeninde bilinen yerli mülk

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>&nbsp;&nbsp; <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; 

} 

Ben hatalar Can not bağlama «var bilinen bir yerel özellik olmadığından 'NgModel' seçeneğine »ve« »NgIf 'bağlanılamıyor, çünkü bu bilinen bir yerel özellik değil».

kullanıyorum beta 8.

+0

aynı hata: Eğer svg ait height öznitelik için örneğin bağlayıcı öznitelik kullanmak gereken özelliklerin (değil özellikleri) için

-

. Belki ithalat ile bir şey? –

+1

Bağlama sözdizimi hakkında konuşan angular2 belgelerine bakmadığınızı hissediyorum ... https://angular.io/docs/ts/latest/guide/template-syntax.html – Mitchapp

cevap

15

çalışırken [(ngModel)] yerine *NgModel ve *ngIf yerine Genelde

<span>{{nickname}}</span>&nbsp;&nbsp; <button type="button" (click)="signOut()">|→ Sign out</button> 

export class AuthBoxComponent { 
    nickname="guest"; 
    ... 
} 
+1

FYI ... emin değilim ama 'beta-8'den 'FORM_DIRECTIVES & COMMON_DIRECTIVES' – micronyks

+0

COMMON_DIRECTIVES ve CORE_DIRECTIVES ithal etmek gerekli değil mi? –

+0

Büyük harf yazılan sürümler sınıf adına başvurur, küçük harf sürümleri örneklere başvurur. Örnekleri kullanın. – LeeGee

40

*NgIf, HTML'nizde bir yazım hatası olduğunda can't bind to xxx since it isn't a known native property hata oluşur kullanarak deneyin bir özellik yönergesini kullanmak veya bir özellik bağını kurmaya çalışırken. Eğer bir * veya # veya let kaçırmak veya in yerine of kullandığınızda

yaygın örnekleri şunlardır Açısal yerleşik yapısal direktifleri:

<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" 

bir yazım hatası ya da sorunu yaratacaktır yanlış durum: : DOM eleman veya bileşen üzerinde bulunmayan bir özelliği belirtirseniz

<div *ngFer="..." 
<div *NgFor="..." 

diğer nedeni ise:

yazım hatası yerleşik yönergesi seçicileri herhangi uymuyor çünkü kurulum için Açısal çalışır bir (DOM öğesinin bir özelliğe bağlamayerleşik Eğik direktifleri yazım hataları için
<div [prop1]="..."  // prop1 isn't a valid DOM property for a div 
<my-comp [answr]="..." // typo, should be [answer] 

, Yukarıdaki örnekte div) yazım hatası adıyla. Bu, bir div, yerel bir ngIf veya ngFer veya prop1 DOM özelliğine sahip olmadığı için başarısız olur. <svg [attr.height]="myHeightProp">

+0

Tüm öğeler için tüm yerel DOM özelliklerini bulmanın bir yolu var mı? Ben bir 'svg' elementinin' height' özelliği bağlamak çalıştığınızda aynı sorunu yaşıyorum. – bartaelterman

+2

Böyle bir listenin farkında değilim, özellikle şu hususları göz önünde bulundurursak, örneğin, (MDN'ye göre) (https://developer.mozilla.org/en-US/docs/Web/API/Element)) Düğüm ve EventTarget'ten devralınır ve ParentNode, ChildNode, NonDocumentTypeChildNode ve Animatable'ı uygular. Bunların her birinin kendi özellikleri olabilir.Özellikleri bulmak için normalde MDN kullanıyorum veya Chrome dev araçlarını kullanıyorum (Elements, ardından Özellikler sekmesi). Sizin durumunuzda, "height", bir özellik değil, bir svg öğesinin bir özniteliğidir, bu nedenle özniteliğin bağlayıcısını kullanmanız gerekir: ''. –

+0

Ayrıca bkz. Https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute –