ember.js - 使用新的Ember RouterV2,如何立即从索引状态重定向到另一个状态?

标签 ember.js ember-router

到目前为止我所拥有的:

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>

我有四个问题:

  1. 当我打开应用程序时,它仅保留在主页中,redirectTo Hook 是否会立即将您重定向到另一个状态?

  2. 此外,我在 AplicationRoute 中有此事件哈希值根据这里的建议:How to programmatically transition between routes using Ember.js' new Router 。但我通读了答案,但仍然不确定你应该如何使用它。

  3. 如何在控制台上测试路由器?在您可以通过调用transitionTo在各州之间导航之前命令,我现在该怎么办?

  4. 出于某种奇怪的原因,我的应用程序模板似乎呈现了两次,因为那里有两个“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/

相关文章:

javascript - 如何在不触及 index.html 的情况下将外部 javascript 标签添加到 Ember JS 应用程序?

ember.js - 是否可以使用 `content-for` 在 Ember CLI 的页面结构中包含内容?

javascript - 为什么我的网络应用程序不会将数据发送到我的 google firebase 数据库?

ember.js - 在 ember v2 路由器中,为什么controllerFor() 不提供对此 Controller 的引用?

ember.js - 使用 Ember.js 的 Hashbang URL

javascript - this.controller 在 Route 类中未定义

javascript - Ember.js,使用 {{each}} 循环遍历两个数组

javascript - 检查相关对象在 Ember 和 Ember 数据中是否为 null

ember.js - Ember 深度嵌套路由不保留父动态参数

Ember.js:一种实现真正全能路线的方法?