2017-12-19 8 views
0

私はコンポーネントを作成し、それがそのまま出力を与える:私は好きで、いくつかのinitメソッドを追加しようとするとEmberコンポーネントレイアウトと機能の記述方法は何ですか?

import Ember from 'ember'; 
import layout from '../templates/components/sample-work'; 

export default Ember.Component.extend({ 
    layout 
}); 

import Ember from 'ember'; 
import layout from '../templates/components/sample-work'; 

export default Ember.Component.extend({ 
    layout, 
    init(){ 
    alert.log('hi'); 
    } 
}); 

私のコンポーネントはまったく呼び出されません。ここの問題は何ですか?ここでコンポーネントを処理する正しい方法は何ですか?

+0

あなたは開発していますか、アドオンですか?どのようにコンポーネントを作成しましたか? 'ember-cli'を使いましたか? – alptugd

+0

たとえば、{application-bs}や 'index.hbs'の中にコンポーネントを置いたことがありますか? – alptugd

+0

はいコマンドプロンプトでCLIを使用します – 3gwebtrain

答えて

2

通常、ファイルjs内にlayoutは必要ありません。 emberは意見の多いフレームワークであり、通常、コンポーネントのjshbsファイルは、デフォルトではjscomponentsに、hbstemplates\componentsに、それぞれ配置されます。

この場合、レイアウトをインポートする必要があるファイルjsが直接利用できない場所にテンプレートファイルを配置します。私があなたのために用意したsimple twiddleを見てください。このひねりの中で。 my-component2のテンプレートファイルは、対応するjsファイル内にlayoutフィールドとしてインポートする必要があります。

+1

アドオンでは、レイアウト – Lux

+0

@Lux trueが必要です。私はコメントとしてそれを書いてそれに尋ねました! – alptugd

0

あなたのinit関数の中で常にthis._super(...arguments)と呼ぶべきです

関連する問題