问题是emberJS中没有识别路由,即使它在router.js中指定的格式为'正确',如emberJS文档1.13.0所示。这就是现在的样子:
this.route('business', {path: '/business'}, function(){
this.route('dashboard', {path:'/dashboard/:business_name'})
});
我在路线/业务下有一个路线仪表板,显示以下内容:
export default Ember.Route.extend({
model: function(){
return this.store.find('business');
}
});
以下是重新路由到网页的路由代码,无论该人是否已成功登录:
var _this = this;
var user = $.ajax({
type: "POST",
url: "http://path/to/login",
data: {
emailAddress: this.get('model.emailAddress'),
password: this.get('model.password')
}
}).then(function(response, request){
if(response != null){
business.set('businessName', response.business.business_name);
business.save('no post'); //I override the .save() so it won't do a post request
_this.transitionToRoute('business.dashboard', business);
}
else{
//skip the welcome part
}
});
尽管使用以前生成新路由的方法(我可能会成功添加),但我不知道为什么它会给我这个错误:
未捕获错误:没有名为Dashboard的路线
答案 0 :(得分:0)
您在transitionToRoute()函数中错误地指定了路径名称。对于嵌套路由,路由名称将类似于 {parent_route}。{child_route}。
在您的情况下,信息中心的路线名称为: business.dashboard
有关嵌套的更多详细信息,请参阅以下内容: http://guides.emberjs.com/v1.13.0/routing/defining-your-routes/#toc_resetting-nested-route-namespace
希望这会有所帮助。请尝试让我知道它是否有效。感谢。
答案 1 :(得分:0)
以下是我在检查代码时能够找到的问题:
没有名为" business_name "在模型对象" Business"。并且,您使用了" business_name "作为定义路线时的动态段。
有两种方法可以解决这个问题:
请尝试一下,让我知道它是否有效。感谢。