EmberJS:更改路径访问路径

时间:2014-05-07 20:03:29

标签: javascript model-view-controller ember.js ember-router

我的应用程序已定义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;

用户-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

您知道我的代码在这一点上出了什么问题吗?

由于

2 个答案:

答案 0 :(得分:0)

我不使用ember appkit但也许尝试下划线,即'user_profile'并重命名你的文件。只是在黑暗中拍摄。

答案 1 :(得分:-1)

我不得不猜测这是你设计路由器和命名空间的方式。

通常,准系统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...
});

在您的示例中,您的路由器不在App命名空间中,或者您的根对象被命名为什么(它不必是'App')。如果我在这里没有看到其他因素,我会尝试或者发布更多代码。

此外,通常您会将路径命名为userProfile。虽然我不认为虚线名称是一个问题,但它不遵循Ember命名惯例。

希望这有帮助。