2013-05-29 14 views
7

Chciałbym przekazać użytkownika do /articles po przybyciu na numer /. Niestety, /articles „s model() -function nie zostanie wykonany, ponieważ nie jest to odświeżenie strony:Przekieruj z indeksu na inną trasę i wymuś model()

App.IndexRoute = Em.Route.extend 
    redirect: -> 
     @transitionTo "articles" 

Co się Ember-sposobem osiągnięcia tego celu?

+0

Dodanie go do setupController przyzwyczajenie pomóc? –

+0

Czy istnieje prostsze rozwiązanie? – kraftwer1

Odpowiedz

8

naprawdę nie mogę powiedzieć resztę konfiguracji, ale to jest jak się go osiągnąć

window.App = Ember.Application.create(); 

App.Store = DS.Store.extend({ 
    adapter: DS.FixtureAdapter 
}); 

App.Router.map(function() { 
    this.resource('articles', function() { 
    this.resource('article', {path: ':article_id'}); 
    }); 
}); 

App.Article = DS.Model.extend({ 
    title: DS.attr('string') 
}); 

App.Article.FIXTURES = [{ 
    id: 1, 
    title: 'blah' 
}, { 
    id: 2, 
    title: 'more blah' 
}]; 

App.IndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    this.transitionTo('articles'); 
    } 
}); 

App.ArticlesRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Article.find(); 
    } 
}); 

przykład robocza: http://jsbin.com/imidiq/2/

+1

Wielkie dzięki, dokładnie to, czego potrzebowałem. Nie wiedziałem, że możliwe jest utworzenie pod-zasobów z '{path:": article_id "}' – kraftwer1

Powiązane problemy