Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 名为'index'的重复路由错误_Javascript_Ember.js_Routing_Url Routing_Ember Cli - Fatal编程技术网

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

    通常,您将使用特定于
    索引
    路由到
    配置文件索引
router.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/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