我们有这样的方案:
引用 --->创建
所以路线名称为quote
和quote.create
。
问题是我们需要将模板渲染到主插座中。所以在我们的主要路线(所有其他都是从中继承)我们有这个:
renderTemplate: function() {
this.render({ into: 'application' });
}
当我导航到quote
时,它会呈现报价视图。从那里我导航到quote.create
并呈现创建视图。但是,从quote
返回到quote.create
不会产生任何效果。
我怎样才能解决这个问题?
当我回到\ quote url route'quote.index'时,我会寻求。由于它是“自动地”定义的,所以没有任何反应。当我明确定义路线时,ember试图找到quote.index
模板和视图,这些不存在。
我尝试过的解决方法是:
App.QuoteIndex{Route|Controller|View} = App.Quote{Route|Controller|View}.extend()
修改:
Hey diddle-diddle,这是我的小提琴:) http://jsfiddle.net/EbenRoux/Mf5Dj/2/
答案 0 :(得分:0)
Ember.js在转换到父路线时不会重新渲染父视图,因此不建议使用with父视图模板。
有一种更简单的方法来创建您尝试的内容:使用引用/索引路径:
<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');
});
});