2013-10-22 104 views
1

我們沿着這些路線的情景:灰燼js版1:路由層次/激活

引用 --->創建

所以路線名稱quotequote.create

問題是我們需要將模板渲染到主要插座。因此,在我們的主要途徑(其他所有從繼承),我們有這樣的:

renderTemplate: function() { this.render({ into: 'application' }); }

當我瀏覽到quote它呈現的報價視圖。從那裏我導航到quote.create,它呈現創建視圖。但是,quotequote.create不會呈現任何內容。

我該如何解決這個問題?

當我回到\報價URL路徑「quote.index」的追捧。由於它被自動定義,所以沒有任何反應。當我明確地定義路由時,餘燼會嘗試查找quote.index模板和視圖,而這些不存在。

我想一個解決辦法是有這樣的:

App.QuoteIndex{Route|Controller|View} = App.Quote{Route|Controller|View}.extend()

編輯

嘿騙取,騙取,這裏是我的小提琴:) http://jsfiddle.net/EbenRoux/Mf5Dj/2/

回答

0

Ember.js做在轉換到父路由時不重新顯示父視圖,因此不建議使用父視圖模板。

還有就是要創造什麼你想更簡單的方法:使用報價/指數路線:

<script type="text/x-handlebars" data-template-name="application"> 
    <h1>Rendering Issue</h1> 
    {{outlet}} 
</script> 
<script type="text/x-handlebars" data-template-name="quote"> 
    {{outlet}} 
</script> 
<script type="text/x-handlebars" data-template-name="quote/index"> 
    <h2>Quote View</h2> 
    {{#linkTo 'quote.create'}}Create a new quote{{/linkTo}} 
</script> 
<script type="text/x-handlebars" data-template-name="quote/create"> 
    <h2>Quote Create View</h2> 
    <p>Some controls would go here.</p> 
    {{#linkTo 'quote'}}Go back to quote view{{/linkTo}} 
</script> 

App = Ember.Application.create({}); 

App.ApplicationRoute = Ember.Route.extend({ 
    activate: function() { 
     this.transitionTo('quote'); 
    } 
}); 

App.Router.map(function() { 
    this.resource('quote', function() { 
     this.route('create'); 
    }); 
}); 

http://jsfiddle.net/eYYnz/

+0

啊,我明白了。所以基本上,一個人會避開父母(在這種情況下引用),只是使用'sub'路線(在這種情況下,索引和創建)。我明天會給它一個bash。如果沒有,我會接受答案。 –

+0

這可以正常工作,但在報價模板預編譯時不起作用。對於預編譯的模板,它似乎進入了一些無盡循環,試圖找到出口。有任何想法嗎? –

+0

好的,所以看起來我們在我們的預編譯器中有一個錯誤:) ---排序。謝謝你的。對我有點意見! –