2016-09-13 5 views
2

は、我々はディレクティブでAngular2を作成し、stringを受けるべきinput性質を持っています。問題は、文字列を渡すことができないということです。Angular2ディレクティブ - 文字列の問題

我々はこれを実行しようとした場合:

<learning-requirements [title]="You should be able to!" [content]="requirements"></learning-requirements> 

それは動作しませんので、我々はこれをしなければならないし、それが動作します:

:私たちのディレクティブです

<learning-requirements [title]="'You should be able to!'" [content]="requirements"></learning-requirements> 

@Component({ 
    selector: "learning-requirements", 
    directives: [IONIC_DIRECTIVES], 
    templateUrl: "build/pages/learning/components/requirements/requirements.html" 
}) 
export class RequirementsComponent { 
    @Input() public title: string; 
    @Input("content") public items: Array<Requirement>; 
} 

文字列を一重引用符で明示的に処理する方法はありますか?

答えて

2

をそれを使用します成分。

あなたが直接あなたが直接あなたが属性の内部で合格した値は、コンポーネントのコンテキスト(this)に対して評価を取得しないことを意味し[]角括弧、なしtitle属性を指定することができた値を渡しているので。

マークアップ

<learning-requirements 
    title="You should be able to!" 
    [content]="requirements"> 
</learning-requirements> 
+1

これは、説明にも感謝しています! – DAG

+0

@dagそれが助けてくれたことを嬉しく思います、ありがとうと歓声、あなたは同じことを見つけることができました[ここで答え](http://stackoverflow.com/a/39393526/2435473) –

2

宣言文字列(タイプ)変数と、以下のようにあなたはそれがの(this)のコンテキストで評価属性値(式)に起こっている[]角括弧で包む属性している時はいつでも基本的には、

<learning-requirements [title]="someVar" [content]="requirements"></learning-requirements> 


export class AppComponent{ 
    someVar:string="You should be able to!"; 
} 
+0

[OK]を、私はこのことを知っているが、それは単一引用符を避けるために、文字列だディレクティブを指示する方法はありますか? – DAG

+0

あなたは何を言っているのか分かりません。この回答の後にあなたのポイントは何ですか? – micronyks

+0

変数を使いたくない場合は、一重引用符で渡す必要があります。 – micronyks