2017-06-13 15 views
1

これは、レンダリング時にパラメータが渡されるコンポーネントを持っています。動的なパラメータを持つので、名前で正確に取得できません。私は多くの記事を検索しましたが、適切なものは見つかりませんでした。emberコンポーネントの動的パラメータ

Application.hbs

{{small-button type="small" edges="curved"}} 

小button.js

Ember.Component.extend({ 
tagName: "button", 
didInsertElement: function(){ 
    //need to get the dynamic params 
} 
}); 

私はparamキーのを知ってはいけません。どのように私のコンポーネントからすべてのパラメータを得ることができますbutton

ありがとうございます。

+0

これは 'this.get( 'type')'を使用して取得できます。これは 'small'を返します。ダイナミックなパラメータはどういう意味ですか? – kumkanillam

+0

'type'は定数ではありません。それは 'class'か何か他のものかもしれません。私はどのキーがそこにあるのか知っています。 –

答えて

1

可能であれば、このユースケースの他の選択肢について考えることができます。今のところ私はthis.attrsをあなたのためだけに提案するつもりです。

didInsertElement: function(){ 
    //need to get the dynamic params 
    console.log(' Params keys ',Object.keys(this.attrs)); 
    console.log(' Param values ', Object.values(this.attrs)); 
} 

これを読む - https://locks.svbtle.com/to-attrs-or-not-to-attrs

を、なぜあなたはクラシックコンポーネントでattrsを使うべきではないのですか?クラシックコンポーネントではattrsがすでに存在していて、コンポーネントバインディングを管理するために内部的に使用されています。ほとんどの場合、アクションのためにそれを使用することをお勧めしますが、属性に使用すると問題が発生するため、これを念頭に置くよりも現在のAPIを使用する方が簡単です。

+0

なので、 'attrs'を使うことができますか、それとも他に何か提案していますか? –

+0

あなたが望むような動的なパラメータを得るための他の推奨されるソリューションはありません。一般的に 'this.attrs'はGlimmerコンポーネント(' ')ですが、まだEmberにはまだ着いていません。 – kumkanillam

+0

あなたの場合、外部属性だけのため、慎重に使用することができます。 – kumkanillam

関連する問題