Ember.js 如何通过es6在ember(版本2.4.6)中获得所有注册路由器
我需要在余烬应用程序中所有注册路由器的列表。 在互联网上搜索后,我找到了以下链接: 但这对我不起作用 这是App.jsEmber.js 如何通过es6在ember(版本2.4.6)中获得所有注册路由器,ember.js,ember-router,Ember.js,Ember Router,我需要在余烬应用程序中所有注册路由器的列表。 在互联网上搜索后,我找到了以下链接: 但这对我不起作用 这是App.js import Ember from 'ember'; import Resolver from './resolver'; import loadInitializers from 'ember-load-initializers'; import config from './config/environment'; let App; Ember.MODEL_FACTOR
import Ember from 'ember';
import Resolver from './resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
let App;
Ember.MODEL_FACTORY_INJECTIONS = true;
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver,
ready: function () {
}
});
loadInitializers(App, config.modulePrefix);
export default App;
这是router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('about');
this.route('login');
});
export default Router;
这是get all路由器的应用程序Conroller
import Ember from 'ember';
import App from 'ember-app/app';
export default Ember.Controller.extend({
allRouter: [],
allRouterCalc: Ember.computed('allRouter', function() {
let allRouter = this.get('allRouter');
if(allRouter.length === 0)
{
allRouter = App.Router.router.recognizer.names;
}
return allRouter;
})
});
但当我调用“allRouterCalc”变量时,出现了以下错误: “无法读取未定义的属性‘router’。” 出现此问题的原因是“App.Router”中的“Router”为“未定义”
为什么“路由器”是“未定义的”?每个余烬应用程序都有一个
路由器。所以我想你的意思是你想列出所有的路线
您可以按如下方式列出所有路线:
let router = Ember.getOwner(this).lookup('router:main');
let allRoutesList = router.get('router.recognizer.names');
注意:这适用于2.x版每个余烬应用程序都有一个路由器。所以我想你的意思是你想列出所有的路线
您可以按如下方式列出所有路线:
let router = Ember.getOwner(this).lookup('router:main');
let allRoutesList = router.get('router.recognizer.names');
注意:这适用于2.x版谢谢,您的回答帮助了我。但是有没有可靠的来源可以找到关于ember的这些问题的答案?在ember v3中不再有效。*但是你可能会发现新的路由器服务存在漏洞。@MattJensen是的,我不尝试使用v3.x这已经被弃用:使用路由器。_routerMicrolib.recognizer.names
。谢谢,你的回答帮助了我。但是,有没有可靠的来源可以找到关于ember的这些问题的答案?在ember v3中不再有效。*但是,您可能会发现新路由器服务存在漏洞。@MattJensen是的,我不尝试使用v3.x。这已经被弃用:使用路由器。_routerMicrolib.recognizer.names
。