2017-03-01 8 views
0

独自のカスタム構造指令でTemplate Input Variablesにアクセスするにはどうすればよいですか?角2:構造指令のテンプレート入力変数にアクセスする方法

@Directive({ 
    selector: "[myCustomDirective]" 
}) 
export class MyCustomDirective { 
} 

ドキュメントはA template input variable is a variable whose value you can reference within a single instance of the template.

<div *myCustomDirective="let visible = true"></div> 

私はテンプレートが今let-visibleという入力を持っていることを知っているが、私はそれをどのようにアクセスしないと言っていますか?

-------------------

私はしたい構造指令を使用して複数の入力を受け入れることができます。それは可能ですか?

私が行うngForようlet visible構文を使用しようとしていた私はなぜmyCustomDirective自体に割り当てる1つの入力と1つのvisibleへのthatsをしたいです。

+0

をあなたのカスタム構造ディレクティブ内の「目に見える」の値にアクセスしたいですか? – user6801750

+0

はい。それは可能ですか? – takeradi

答えて

1

また、指示モジュールの上部にInputをインポートする必要があります。

@Directive({ 
    selector: "[myCustomDirective]" 
}) 
export class MyCustomDirective { 
    @Input() 
    set myCustomDirective(isVisible: boolean): void { 
    // do something with isVisible 
    } 
} 

ディレクティブの使用。

<div *myCustomDirective="true"></div> 
+0

しかし、自分のカスタム構造指令を作成していることに言及しました。なぜそれが '*'文字で始まるのですか? – takeradi

+0

@ takeradi - 私はコメントを削除しましたが、どちらのタイプのディレクティブにも当てはまると考えています。 – Igor

+0

あなたの答えは私の場合には無効です。また、 'div'に' [visible] '入力を使用できるかどうかはわかりません。 Divはカスタムコンポーネントではないので、どのようにそれに 'Input'を割り当てることができますか? – takeradi

0

あなたは以下試すことができます。

  import { Directive,Input,...} from '@angular/core'; 
      @Directive({ 
       selector: "[myCustomDirective]" 
      }) 
      export class MyCustomDirective { 

      //using the Input decorator, we can accept the value of the property (in our case, it is myCustomDirective)and //use it inside our directive class. 
      @Input('myCustomDirective') 
       private visible: boolean; 

       //console.log(this.visible); 

      } 

      // Use it, maybe like this: 
      <div *myCustomDirective="true"></div> 
関連する問題