EmberJS: изменить путь для доступа к маршруту

У меня есть Router.map, определенный для моего приложения. Я работаю с архитектурой EmberJS AppKit. https://github.com/stefanpenner/ember-app-kit

Я хочу получить доступ к «профилю» своей страницы по следующему пути: http://localhost:8000/#/profile

Но имя моего маршрута отличается от этого пути, потому что это вызов user-profile, поэтому я сделал это:

router.js

var Router = Ember.Router.extend();

Router.map(function () {
    this.resource('user-profile', { path: 'profile'}, function() {
        //Some other things...
    });
});

export default Router;

user-profile.js

export default Ember.Route.extend({
    model: function () {
        return this.store.find('user-profile');
    }
});

Когда я запускаю свое приложение, Ember сообщает мне, что маршрут profile не существует, хотя я определил путь:

Uncaught Error: Assertion Failed: Error: Assertion Failed: The URL '/profile' did not match any routes in your application

Вы знаете, что не так с моим кодом на данный момент?

Спасибо


person alexmngn    schedule 07.05.2014    source источник


Ответы (2)


Я не использую ember appkit, но, возможно, попробуйте использовать символ подчеркивания, т.е. 'user_profile', и также переименуйте ваш файл. Просто выстрел в темноте.

person Andrew Hacking    schedule 18.05.2014

Я должен предположить, что именно так вы проектируете свой маршрутизатор и пространство имен.

Обычно базовое приложение Ember требует:

window.App = Ember.Application.create({
  LOG_TRANSITIONS: true,
  LOG_TRANSITIONS_INTERNAL: true
});

App.Router.map(function () {
  this.resource('user-profile', { path: 'profile'}, function() {
  //Some other things...
});

В вашем примере ваш маршрутизатор не находится в пространстве имен приложений или как называется ваш корневой объект (это не обязательно должно быть «приложение»). Я бы попробовал это или, возможно, разместил больше кода, если есть другие факторы, которые я здесь не вижу.

Кроме того, обычно вы должны назвать свой маршрут userProfile. Хотя я не думаю, что dasherized имя является проблемой, оно не соответствует соглашениям об именах Ember.

Надеюсь это поможет.

person bmeyers    schedule 07.05.2014
comment
Я работаю с Ember AppKit, которому не требуется это пространство имен. - person alexmngn; 08.05.2014
comment
Ясно, но больше кода все равно было бы полезно. Вы определили фактический маршрут? App.UserProfileRoute = Ember.Route.extend({}) ? - person bmeyers; 08.05.2014