2013-07-27 95 views
0

我有一個模板網站:如何在Ember.js中創建子頁面?

<script type="text/x-handlebars"> 
mainsite 
    {{outlet}} 
</script> 

<script type="text/x-handlebars" data-template-name="mainpage"> 
    mainpage 
    {{outlet}} 
</script> 

<script type="text/x-handlebars" data-template-name="subpage"> 
    subpage 
</script> 

{{#linkTo 'mainpage.subpage'}}{{/linkTo}} 

所以我想acomplish那是什麼人類型的地址/炫魅它會看到「mainsite炫魅」,當他類型/炫魅/子頁面,他看到了「mainsite主頁子頁面「。

所以基本上我想有一個子頁面放入主頁面模板,並將其合併到主模板(即上面列表中的第一個)。

我已經試過:

this.resource('mainpage', function() { 
    this.route('subpage', { path: '/subpage' }); 
    }); 

但不是如果我點擊通過linkTo地址創建的鏈接設置爲炫魅廣東/子頁面(所以這是確定的),但我看到「mainsite炫魅」,但沒看見「主頁主頁子頁面」。

我做錯了什麼?如何解決它?

+0

你能否將這個問題重新定義爲「ember.js中的路由和資源有什麼區別」 - 這是一個更通用的標題,可以幫助更多的用戶找到答案! –

回答

2

我剛寫了一個關於路由並渲染視圖的教程,回答這個問題:http://matthewlehner.net/ember-js-routing-and-views/

然而,更具體的這個問題,這裏的問題是定義routeresource。 有兩個選項,快速解決您的問題:

更改路由類型

this.resource('mainpage', function() { 
    this.resource('subpage', { path: '/subpage' }); 
}); 

更改模板名稱

data-template-name="mainpage/subpage" 

發生這種情況,因爲添加一個「子頁面」路由到資源會爲此資源添加另一個操作。在你原來的情況下,它會尋找一個data-template-name="mainpage/subpage"

想想這兩條路線的「用戶/新」和「用戶/ 1 /評論」之間的區別 - 第一個應該爲用戶呈現一個新的動作,但第二個是您認爲會嵌套的資源顯示來自特定用戶的評論。

this.resource('users', function() { 
    this.route('new'); #renders the 'users/new' template 
    this.resource('comments'); #renders the 'comments' template 
}); 

作爲額外的獎勵,路線名稱應該只是工作:使用灰燼,你如下使這兩種不同的路線。至少從1.0rc6開始。

+0

謝謝,它的工作 –