2016-06-21 6 views
0

@Inputを追加して余分な属性を渡そうとしましたが、うまく動作します。しかし、私はID、任意の新しいクラス、つまりコンポーネントディレクティブで定義されたすべての属性を渡す方法がわからないよAngularJS 2:テンプレートにコンポーネントの余分な属性を渡します。

<my-directive disabled style="color: red;">{{my name}}</my-directive> 

この中

<button class="my-button" disabled style="color: red">{{my name}}</button> 

に拡大すべきで、クラス属性は、コンポーネントのテンプレートファイル内に記述されます& disabled style="..."がテンプレートに渡されます。

// Component code 

import { Component } from 'angular/core'; 

@Component({ 
selector: 'my-directive', 
template: ` 
      <button class="my-button">It should be fetched from outside</button> 
     ` 
}); 


export class MyDirective{  
    constructor(){ 

    } 
} 
+0

あなたは私達にあなたのコンポーネントクラスのコードを表示することができますように入力に渡された値を広めることができますか? – rinukkusu

+0

@rinukusuコンポーネントコードが追加されました。 –

答えて

0

styleのためには、任意のスタイルを設定するngStyleを使用することができますが、それは入力とは関係ありません。

すべての入力を1つずつしか設定できません。一度に複数またはすべての入力を設定する方法はありません。

あなたはすべてを自分で入力を作成し、

@Input() input1; 
@Input() input2; 
@Input() input3; 

@Input() 
set all(data) { 
    this.input1 = data.input1 || this.input1; 
    this.input2 = data.input2 || this.input2; 
    this.input3 = data.input3 || this.input3; 
} 
+0

コンポーネントディレクティブの使用中にこれらの入力はどのように使用されますか? –

+0

あなたは何を意味するのかよく分かりません。おそらく 'または '' allValues'は '{input1: 'a'、input2: 'b'、input3: 'c'}'です。 –

+0

私はこれについて考えましたが、私のディレクティブを使用している開発者が余分な属性を渡す方法を知る必要がないようにしたいのです... html属性を追加するだけで簡単です。 –

関連する問題