到目前为止我所拥有的:
App = Ember.Application.create({
LOG_TRANSITIONS: true
});
App.Router.map(function(match){
match('/').to('application');
match('/edit').to('edit');
});
App.ApplicationRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('edit');
},
events: {
startEdit: function( context ){
this.transitionTo( 'edit' );
}
}
})
App.EditRoute = Ember.Route.extend({
init: function(){
this._super()
console.log('EditRoute')
},
});
Handlebars :
<script type="text/x-handlebars" data-template-name = 'application'>
Hello World
{{ outlet main }}
</script>
<script type="text/x-handlebars" data-template-name = 'edit'>
<div class = 'edit-background'> Edit State: {{ title }} </div>
</script>
我有四个问题:
当我打开应用程序时,它仅保留在主页中,redirectTo Hook 是否会立即将您重定向到另一个状态?
此外,我在
AplicationRoute
中有此事件哈希值根据这里的建议:How to programmatically transition between routes using Ember.js' new Router 。但我通读了答案,但仍然不确定你应该如何使用它。如何在控制台上测试路由器?在您可以通过调用
transitionTo
在各州之间导航之前命令,我现在该怎么办?出于某种奇怪的原因,我的应用程序模板似乎呈现了两次,因为那里有两个“Hello World”,当尝试添加类似以下内容时:
<li>{{#linkTo edit}}edit{{/linkTo}}</li>
我收到此错误:
'Uncaught TypeError: Cannot read property 'container' of undefined -- ember.js:2223'
最佳答案
这是您在应用程序启动时最初加载 editView/route/template 的方式:
路由器
App.Router.map(function(match){
match('/').to('application',function(match){
match('/').to('edit')
})
})
应用程序模板
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
编辑模板
<script type="text/x-handlebars" data-template-name="edit">
I am embedded!
</script>
编辑路线
EditRoute = Ember.Route.extend({
renderTemplates:function () {
this.render('edit', {
into:'application'
});
})
关于ember.js - 使用新的Ember RouterV2,如何立即从索引状态重定向到另一个状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14237628/