Javascript 名为'index'的重复路由错误
我的应用程序有如下链接:Javascript 名为'index'的重复路由错误,javascript,ember.js,routing,url-routing,ember-cli,Javascript,Ember.js,Routing,Url Routing,Ember Cli,我的应用程序有如下链接:abc.com,这是一个主页;abc.com/user123(有一个动态段),这是一个登录到特定配置文件页面的用户 早些时候,我通过以下方式实现了这一目标: this.route('index',{path:'/'}, function (){}); this.route('index', {path:'/:u_name'} , function() {}); 现在,升级到2.10后,我无法使用上述方法在我的router.js中创建所需的链接。这会在控制台中导致以下错误
abc.com
,这是一个主页;abc.com/user123
(有一个动态段),这是一个登录到特定配置文件页面的用户
早些时候,我通过以下方式实现了这一目标:
this.route('index',{path:'/'}, function (){});
this.route('index', {path:'/:u_name'} , function() {});
现在,升级到2.10后,我无法使用上述方法在我的router.js中创建所需的链接。这会在控制台中导致以下错误:
ember.debug.js:55283未捕获错误:您不能添加名为'index.loading'的重复路由
省略这两条路径中的任何一条都不允许我达到预期的结果
尝试访问此网站上的/
和/user123
完成像abc.com
和abc.com/user123
这样的链接的新方法是什么?在本文中讨论了不使用这种路由配置。
尽管如此,如果您想拥有相同的功能,请尝试我的尝试。让我知道这是否对你有效
我创建了profile index
route
- 其路线延伸至
路线索引
- 其控制器扩展
控制器索引
- 它的模板是
index.hbs
通常,您将使用特定于
路由到索引
配置文件索引
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
// BOTH '/' and '/user123' will work now
this.route('index',{path: '/'});
this.route('profile-index',{path: '/:u_name'});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
eUserName: undefined,
model(params){
this.set('eUsername', params.u_name);
return [1,2];
},
setupController(controller,model){
this._super(...arguments);
controller.set('eUsername',this.get('eUsername'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
isProfilePageShown: Ember.computed('eUsername', function(){
return this.get('eUsername') ? true : false;
}),
isHomePageShown: Ember.computed('isProfilePageShown', function(){
return this.get('isProfilePageShown') ? false : true;
})
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
routes/index.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
// BOTH '/' and '/user123' will work now
this.route('index',{path: '/'});
this.route('profile-index',{path: '/:u_name'});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
eUserName: undefined,
model(params){
this.set('eUsername', params.u_name);
return [1,2];
},
setupController(controller,model){
this._super(...arguments);
controller.set('eUsername',this.get('eUsername'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
isProfilePageShown: Ember.computed('eUsername', function(){
return this.get('eUsername') ? true : false;
}),
isHomePageShown: Ember.computed('isProfilePageShown', function(){
return this.get('isProfilePageShown') ? false : true;
})
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
routes/profile index.js这将呈现index.hb
s而不是profile index.hbs
import Ember from 'ember';
import IndexRoute from './index';
export default IndexRoute.extend({
templateName:'index',
});
控制器/index.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
// BOTH '/' and '/user123' will work now
this.route('index',{path: '/'});
this.route('profile-index',{path: '/:u_name'});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
eUserName: undefined,
model(params){
this.set('eUsername', params.u_name);
return [1,2];
},
setupController(controller,model){
this._super(...arguments);
controller.set('eUsername',this.get('eUsername'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
isProfilePageShown: Ember.computed('eUsername', function(){
return this.get('eUsername') ? true : false;
}),
isHomePageShown: Ember.computed('isProfilePageShown', function(){
return this.get('isProfilePageShown') ? false : true;
})
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
控制器/profile index.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
// BOTH '/' and '/user123' will work now
this.route('index',{path: '/'});
this.route('profile-index',{path: '/:u_name'});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
eUserName: undefined,
model(params){
this.set('eUsername', params.u_name);
return [1,2];
},
setupController(controller,model){
this._super(...arguments);
controller.set('eUsername',this.get('eUsername'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
isProfilePageShown: Ember.computed('eUsername', function(){
return this.get('eUsername') ? true : false;
}),
isHomePageShown: Ember.computed('isProfilePageShown', function(){
return this.get('isProfilePageShown') ? false : true;
})
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
模板/索引.hbs
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
// BOTH '/' and '/user123' will work now
this.route('index',{path: '/'});
this.route('profile-index',{path: '/:u_name'});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
eUserName: undefined,
model(params){
this.set('eUsername', params.u_name);
return [1,2];
},
setupController(controller,model){
this._super(...arguments);
controller.set('eUsername',this.get('eUsername'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
isProfilePageShown: Ember.computed('eUsername', function(){
return this.get('eUsername') ? true : false;
}),
isHomePageShown: Ember.computed('isProfilePageShown', function(){
return this.get('isProfilePageShown') ? false : true;
})
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
安库什
我想我已经在slack中谈到了这一点,但我只是在尝试处理许多错误路径时遇到了它
为了记录在案,我认为答案是省略“索引”。它试图通过一个隐式的路线来提供帮助,但它通常只是混淆了事情
this.route('flowers', function() {
this.route('flower-list', { path: '/' });
this.route('flower-detail', { path: '/:id'});
});
或者在稍微复杂的嵌套中
this.route('flowers', function() {
this.route('loading');
this.route('flower-list', { path: '/' }, function() {
this.route('quick-view', { path: '/:id'});
});
this.route('flower-detail', { path: '/:id'});
});
你会对这个感兴趣的啊哈!谢谢你@kumkanillam