2013-09-02 4 views
0

Apollogies за мой английский,Ember маршрутизатор - многоуровневый ресурс

У меня есть маршрутизатор, как это:

App.Router.map()-> 
@resource 'movies' , -> 
    @route 'free' 
    @route 'featured' 
    @route 'index' 
    @route 'movie', path: '/:movie' 

@resource 'seasons' , -> 
    @route 'free' 
    @resource 'featured', -> 
    @route 'season', path : '/:season' 
    @route 'index' 
    @route 'season', path: '/:season' 

В данном конкретном случае:

@resource 'seasons' , -> 
    @route 'free' 
    @resource 'featured', -> 
    @route 'season', path : '/:season' 

Если сделать:

{{#linkTo "seasons.featured.season" 25}} .... 

Ember исключает исключение , Я должен сделать:

{{#linkTo "featured.season" 25}} .... // this way is ok  

То же самое с шаблонами. Я должен положить в пути:

/templates/featured/seasson.hbs // ok 

Вместо того, чтобы, как я думаю, что должен быть правильный путь:

/templates/seasons/featured/seasson.hbs // worng 

Это правильный путь ??

Заранее спасибо

ответ

1

Да, это правильный путь. Посмотрите на это part of the router guide. Если вы в гнезде resources, маршрут маршрута «перезагружен».

Следующий пример из руководства:

App.Router.map(function() { 
    this.resource('post', { path: '/post/:post_id' }, function() { 
    this.route('edit'); 
    this.resource('comments', function() { 
     this.route('new'); 
    }); 
    }); 
}); 

Вы бы связать новый маршрут для комментариев, как это:

{{#linkTo "comments.new"}} 

Соответственно шаблон должен быть назван comments/new.

Но если вы хотите, вы можете сохранить пространства имен, который также описан в руководстве:

App.Router.map(function() { 
    this.resource('foo', function() { 
    this.resource('foo.bar', { path: '/bar' }, function() { 
     this.route('baz'); // This will be foo.bar.baz 
    }); 
    }); 
}); 

Теперь полное имя пути БАЗА foo.bar.baz и шаблон должен быть помещен в foo/bar/baz.

+0

Perfect !! спасибо –

+0

Тогда закройте вопрос, если вы счастливы :-) – mavilein

+1

Я как раз собирался опубликовать обновленную часть вашего ответа :), но вы, где очень быстро :) – intuitivepixel

Смежные вопросы