2015-05-18 2 views
2

Насколько я понимаю, Ember 1.11.0 устарел resource в маршрутизаторе только в route. По тому, что я прочитал, разница между ними заключалась в том, что resource создал пространство имен. См.: What is the difference between a route and resource in New Router API?Как проложить пробег по ember-маршруту в Ember 1.11.0

Таким образом, вопрос заключается в том, как я должен использовать пробел в маршруте, чтобы в приведенном ниже примере мои комментарии Маршрут, контроллер и просмотр не имеют префикса 'Сообщения'?

App.Router.map(function() { 
    this.route("posts", { path: "/" }, function() { 
    this.route("new", { path: "/new" }); 
    this.route("comments", { path: "/comments" }, function() { 
     this.route("new", { path: "/new" }); 
    }); 
    }); 
}); 

ответ

3

Попробуйте прохождение resetNamespace: true на маршрут как

this.route("comments", { path: "/comments", resetNamespace: true }, function() { 
    this.route("new", { path: "/new" }); 
}); 
+1

Хотя это самый простой способ избавиться от 'this.resource',' resetNamespace' является технически частным API, поэтому нет никакой гарантии, что он будет придерживаться, что может быть или не быть лучше, чем придерживаться 'this .resource', который официально устарел. – hashemi

+2

@Ahmad 'resetNamespace' является общедоступным API. Обратитесь к этой [ember documentation] (http://guides.emberjs.com/v2.0.0/routing/defining-your-routes/#toc_resetting-nested-route-namespace). и этот [выпуск] (https://github.com/emberjs/ember.js/issues/11251) – kushdilip

+0

@kushdilip Вы правы. Я открыл этот вопрос. – hashemi

0

Вы можете использовать resetNamespace вариант для маршрута, что-то вроде этого:

this.route('posts', {}, function() { 
    this.route('comments', {resetNamespace: true}); 
}); 
0

В настоящее время нет никакого способа сделать это используя публичный API без использования this.resource, который официально устарел и предназначен для удаления в Ember 2.0. Использование resetNamespace официально не поддерживается, так как это частный API, поэтому технически он может быть удален в любое время без предупреждения.

Официальное решение этой проблемы - реорганизовать ваше приложение, чтобы принять, что маршруты и шаблоны комментариев находятся в разделе «Сообщения».

+0

Надеюсь, в будущем они откроют для него какой-то публичный API, так как приложение с глубоко вложенными маршрутами (или даже тремя уровнями вложенности) может закончиться длинными и иногда нечетными именами классов без него. – cbonser

+0

@cbonser очень вероятно, что они будут https://github.com/emberjs/ember.js/issues/11251 – hashemi

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