2012-05-29 116 views
8

我剛剛瞭解到Ember.js,它看起來很有趣。我想創建一個小筆記應用程序來學習如何使用它。使用Ember.js創建Web應用程序

我想到的基本佈局是有類別,每個類別都可以有筆記。對於用戶界面來說,會有一個可以點擊的類別的邊欄,而類別的註釋將顯示在另一邊。

但我不能完全弄清楚整個模板/佈局系統。模板系統本身看起來很簡單(與Rails視圖相似)。但你對佈局做什麼?以Rails爲例,您可以很容易地定義佈局,然後將各個視圖添加到該佈局中。 Ember.js對我來說似乎還不清楚。

回答

1

對於簡單的包裝式佈局,您可以使用Ember的內置layout support。它僅支持一個{{yield}},因此可能對您的應用程序太有限。

對於一些更強大的東西看看ghempton的Ember Layout。我想你會發現它非常類似於Rails佈局。他有一個live example here

最後,在Ember中創建視圖層次結構相當簡單(代替或除了使用佈局外)。湯姆戴爾有一個很好的收集Ember資源和例子here

9

除了方法@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); 

+0

在這個例子中可以OUTL et contentView由另外的網點組成?例如,針對應用程序的不同部分(或狀態)的不同contentView:ContentView1:{{left}} {{outlet}}和ContentView2:{{outlet list}} {{outlet details}}。 – jrabary

+0

更新後的API文檔也很有用http://emberjs.com/api/classes/Ember.Handlebars.helpers.html#method_outlet – mspisars