2013-01-09 17 views
2

我到目前爲止有:使用新的Ember RouterV2,您如何立即重定向到索引狀態的另一個狀態?

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> 

我有四個問題:

  1. 當我打開它只是停留在主頁的應用,是redirectTo鉤假設立即將您重定向到另一個狀態?

  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' 

回答

2

這是你如何將首先加載應用的EditView中/路由/模板啓動:

路由器

App.Router.map(function(match){ 
    match('/').to('application',function(match){ 
    match('/').to('edit') 
    }) 
}) 

ApplicationTemplate
<script type="text/x-handlebars" data-template-name="application"> 
    {{outlet}} 
</script> 

EditTemplate
<script type="text/x-handlebars" data-template-name="edit"> 
    I am embedded! 
</script> 

EditRoute
EditRoute = Ember.Route.extend({ 
    renderTemplates:function() { 
     this.render('edit', { 
     into:'application' 
    }); 
}) 
相關問題