到目前为止我所拥有的:
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')
},
});
车把:
<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挂钩是否会立即将您重定向到另一个状态?
此外,我在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'
答案 0 :(得分:2)
这是你最初在应用程序启动时加载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'
});
})