我的应用程序的链接为Site1
Name: MySite1
Type: http
Host name: null
Port: 80
IP Address: *
Binding Information: null
Desired URL: www.mysite1.com or something equivalent
Site2
Name: MySite2
Type: http
Host name: null
Port: 81
IP Address: *
Binding Information: null
Desired URL: www.mysite2.com or something equivalent
这是一个主页,而abc.com
(有一个动态细分)是用户登录的特定个人资料页面。
之前,我通过以下方式实现了这一目标:
abc.com/user123
现在,升级到2.10后,我无法使用上述方法在我的router.js中创建所需的链接。它在控制台中引起以下错误:
ember.debug.js:55283未捕获错误:您可能无法添加名为`index.loading`的重复路由。
省略两条路径中的任何一条都不允许我达到预期的结果。
尝试访问此Ember Twiddle
上的this.route('index',{path:'/'}, function (){});
this.route('index', {path:'/:u_name'} , function() {});
和/
完成/user123
和abc.com
等链接的新方式是什么?
答案 0 :(得分:1)
Ankush。
我想我已经在松弛时已经说过一些关于此事的内容了,但我只是试图处理许多错误路径。
为了记录,我认为答案是留下指数'出。它通过隐含的路线试图提供帮助,但它往往只是混淆了事情。
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'});
});
答案 1 :(得分:0)
在此emberjs bug report中讨论过没有这种路由配置。 尽管如此,如果您想拥有相同的功能,那么请尝试我的尝试。如果这对您有用,请告诉我。
我创建了profile-index
路线,
index
路线index
控制器index.hbs
index
路由到profile-index
<强> 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;
<强>路由/ index.js 强>
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'));
}
});
routes / profile-index.js 这会导致index.hb
不是profile-index.hbs
import Ember from 'ember';
import IndexRoute from './index';
export default IndexRoute.extend({
templateName:'index',
});
<强>控制器/ index.js 强>
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;
})
});
<强>控制器/轮廓index.js 强>
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});
<强>模板/ index.hbs 强>
import Ember from 'ember';
import IndexController from './index';
export default IndexController.extend({
});