我剛剛瞭解到Ember.js,它看起來很有趣。我想創建一個小筆記應用程序來學習如何使用它。使用Ember.js創建Web應用程序
我想到的基本佈局是有類別,每個類別都可以有筆記。對於用戶界面來說,會有一個可以點擊的類別的邊欄,而類別的註釋將顯示在另一邊。
但我不能完全弄清楚整個模板/佈局系統。模板系統本身看起來很簡單(與Rails視圖相似)。但你對佈局做什麼?以Rails爲例,您可以很容易地定義佈局,然後將各個視圖添加到該佈局中。 Ember.js對我來說似乎還不清楚。
我剛剛瞭解到Ember.js,它看起來很有趣。我想創建一個小筆記應用程序來學習如何使用它。使用Ember.js創建Web應用程序
我想到的基本佈局是有類別,每個類別都可以有筆記。對於用戶界面來說,會有一個可以點擊的類別的邊欄,而類別的註釋將顯示在另一邊。
但我不能完全弄清楚整個模板/佈局系統。模板系統本身看起來很簡單(與Rails視圖相似)。但你對佈局做什麼?以Rails爲例,您可以很容易地定義佈局,然後將各個視圖添加到該佈局中。 Ember.js對我來說似乎還不清楚。
對於簡單的包裝式佈局,您可以使用Ember的內置layout support。它僅支持一個{{yield}}
,因此可能對您的應用程序太有限。
對於一些更強大的東西看看ghempton的Ember Layout。我想你會發現它非常類似於Rails佈局。他有一個live example here。
最後,在Ember中創建視圖層次結構相當簡單(代替或除了使用佈局外)。湯姆戴爾有一個很好的收集Ember資源和例子here。
除了方法@rharper提到,您還可以使用outlet
幫手,至極已經介紹了提交5a4917b。
你可以找到一個例子here:
把手:
<script type="text/x-handlebars" data-template-name="main" >
Main View
{{outlet contentView}}
{{outlet footerView}}
</script>
的JavaScript:
App.viewController = Ember.Object.create({
footerView: Ember.View.create({
templateName: 'footer'
}),
contentView: Ember.View.create({
templateName: 'content'
})
});
Ember.View.create({
controllerBinding: 'App.viewController',
templateName: 'main'
}).append();
Ember.run.later(function(){
App.viewController.set('contentView', Ember.View.create({
templateName: 'new-content'
}));
}, 1000);
在這個例子中可以OUTL et contentView由另外的網點組成?例如,針對應用程序的不同部分(或狀態)的不同contentView:ContentView1:{{left}} {{outlet}}和ContentView2:{{outlet list}} {{outlet details}}。 – jrabary
更新後的API文檔也很有用http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#method_outlet – mspisars