2016-04-18 5 views
0

ここでかなり混乱しています。Emberテンプレートがルートjsファイルの属性を表示していない

私はdashboard.infoで次のルートを持っています。私はテンプレートがこのルートと相関していることを知っています。なぜなら、 'submit'のようなアクションは完全に機能しているからです。しかし、testContentのようなこれらの属性は私のテンプレート上に表示されていないいくつかの理由

// dashboard/info.js 
export default Ember.Route.extend({ 

    testContent: "hey what's up", 

    actions: { 
     submit() { 
      //blah blah blah 
     } 
    }, 
}); 

//dashboard/info.hbs 
<p>Should be here: {{testContent}}</p> 

はとても簡単ですね!私は混乱しています。多分これは十分な情報ではありません。関連性のあるものがあります。このフォーム・ナビゲーション・コンポーネントにロードしています。このコンポーネントには、入力を含むいくつかの「パネル」コンポーネントが含まれています。

<form {{action "submit" on="submit"}}> 
    {{info.form-nav model=model}} 
</form> 

ルート上に入れ子になっているコンポーネントが多すぎるとEmberを混乱させることができますか?私はコントローラをインスタンス化していないためかもしれませんか?私はEmberがコントローラーから離れようとしていると思っていました...

私はもっと関連性のある情報を含めることができます。見ています。ありがとう!!

答えて

1

"routes/dashboard/info.js"に変数を定義し、 "templates/dashboard/info.hbs"で使用する場合と同じように別の方法があります。あなたは "setupController"フックを使用して "testContent"を設定することができます。設定後は、 "templates/dashboard/info.hbs"で簡単に使用できます。

// dashboard/info.js 
export default Ember.Route.extend({ 

testContent: "hey what's up", 
setupController: function(controller) { 
    //you can set route variable to controller variable like in below so that it can be easily available in template for rendering purpose 
    controller.set('testContent', this.get("testContent"); 

     this._super(controller, model); 
    } 
    actions: { 
     submit() { 
      //blah blah blah 
     } 
    }, 
}); 
+0

恐ろしいJyoti、これは私が探していたコードでした。 –

1

Emberはコントローラから離れようとしていますが、まだ移動していません。 templates/dashboard/info.hbsテンプレートにtestContentが表示されるようにするには、controllers/dashboard/info.jsコントローラに入る必要があります。

+0

ありがとうございました。 –

関連する問題