2013-01-09 66 views
2

我是新來emberjs和我試圖呈現兩個視圖使用兩個不同的腳本標記在標記中,但只有後來一個得到渲染。雖然試圖呈現emberjs中的兩個模板視圖只有後來一個呈現

HTML:

<script type="text/x-handlebars"> 
    {{view Ember.Select 
     contentBinding="App.peopleController" 
     selectionBinding="App.selectedPersonController.person" 
     optionLabelPath="content.fullName" 
     optionValuePath="content.id"}} 

    <p>Selected: {{App.selectedPersonController.person.fullName}} 
    (ID: {{App.selectedPersonController.person.id}})</p> 
</script> 
<script type="text/x-handlebars"> 
    {{#view Ember.Checkbox}} 
    Check me! 
    {{/view}} 
</script> 

我創建了小提琴也是因爲這個位置:jsfiddle

在這種情況下,我只能看到該複選框,但不能看到的下拉列表中選擇視圖。

回答

1

你必須給一個模板名稱,一個沒有名稱的模板被認爲是ApplicationView的模板,我想如果你有幾個沒有名稱的模板燼選擇最後一個。所以,你必須做一些事情,像這樣:

<script type="text/x-handlebars" data-template-name="check-box"> 
    {{#view Ember.Checkbox}} 
    Check me! 
    {{/view}} 
</script> 

下面是一個例子http://jsfiddle.net/zgLCr/419/ - 另一種觀點認爲包裝Ember.Checkbox並沒有多大意義,但它顯示瞭如何命名和渲染你的觀點,但你可以將複選框置於ApplicationView的模板中:

<script type="text/x-handlebars"> 
    {{view Ember.Select 
    contentBinding="App.peopleController" 
    selectionBinding="App.selectedPersonController.person" 
    optionLabelPath="content.fullName" 
    optionValuePath="content.id"}} 

    <p>Selected: {{App.selectedPersonController.person.fullName}} 
     (ID: {{App.selectedPersonController.person.id}})</p> 

    {{#view Ember.Checkbox}} 
     Check me! 
    {{/view}} 
</script> 
+0

謝謝,但我希望他們在不同的意見,因爲我想創建一個頭部,內容和頁腳小部件。所有人對於例如[jsfiddle for widget](http://jsfiddle.net/Zdr7W/1/)。我是否必須將它們全部添加到應用程序視圖中?因爲這個標記不會那麼可讀。我有一些出路嗎? – guleria

+0

這完全取決於您的應用程序 - 如果您的標題,內容和頁腳都是小部件,那麼它們會做一些超出顯示靜態內容的東西,並擁有自己的控制器,那麼將它們分開可能是個好主意。順便說一下,我會推薦閱讀這個http://trek.github.com/或者看看使用ember編寫的簡單待辦事宜應用程序的代碼https://github.com/addyosmani/todomvc/tree/gh-pages/ architecture-examples/emberjs來獲取路由器和插座的概念,以及如何根據應用程序的狀態連接視圖。 –