【发布时间】:2013-04-12 20:56:54
【问题描述】:
我是 ember 的新手,我想让 Route 使用字符串而不是 id 来获得更漂亮的 url。当我手动输入路径 example.com/#/Commune 时,这里的路由器代码正在工作。但是当使用 {{#linkTo "commune" name}}{{name}}{{/linkTo}} 时,url 会正确更改,但没有显示任何内容(如果我刷新浏览器则会显示)。有什么想法吗?
JS:
App.Router.map(function() {
this.route('commune', {path: "/:commune_name"});
});
App.CommuneRoute = Em.Route.extend({
model: function(params) {
return App.CommunesController.findProperty('name', params.commune_name);
}
});
如果我这样做:情况正好相反。 (链接有效,但输入/刷新 aint)
App.CommuneRoute = Em.Route.extend({
model: function(params) {
return App.Commune.find(params.commune_name);
}
});
【问题讨论】:
-
您是否已经检查过点击链接后是否进入了正确的控制器以及
params.commune_name是否设置正确?另外,CommuneRoute真的是你唯一的路线吗? (只是想知道CommunesController。) -
在刷新/进入时转换为“公社”,然后单击链接
-
如果我这样做:
App.Router.map(function() { this.route('commune', {path: "/:commune_id"}); }); App.CommuneRoute = Em.Route.extend({ model: function(params) { return App.Commune.find(params.commune_id); } });反过来,现在点赞正在起作用,但在输入/刷新时它会崩溃 -
嗯,如果你在旧路由器的
CommuneRoute中使用return App.Commune.find({name: params.commune_name});(或者return App.Commune.find({'name': params.commune_name});)? -
它们都只适用于链接,而不适用于输入/刷新:/
标签: javascript ember.js routes ember-router