10 ember.js
出于报告目的,我想将一些元数据与Ember路由相关联,并且更愿意按如下方式进行:
this.route('list', { path: '/list', description: 'Master List' });
Run Code Online (Sandbox Code Playgroud)
然后description从路由本身或其他地方(如didTransition应用程序路由器上的挂钩)访问此属性.我已经回顾了路由器和路由的来源,并且不能说我真的理解它,当然不能很好地理解如何检索以这种方式指定的自定义属性.我看到有一个名为DSL的对象,这是显然this的this.route在指定map的方法Router,但不能看到如何从这里到那里.从一个子类中Ember.Route,我看到的属性叫this.router,和this.router.router,但我关于这些点不清楚.
或者,如果允许我做我想要的事情,以下内容也会起作用:
this.route('list', { path: '/list' }, function() {
this.description = "Master List";
});
Run Code Online (Sandbox Code Playgroud)
我可以将自定义属性与指定的路径相关联Router#map,如果是,如何?
小智 0
我最终按照以下思路解决了这个问题,编写了自己的“路由”函数来记录我需要的数据,然后将其传递给 DSL:
var myRouteData = {};
function route(dsl, name, options, fn) {
if (typeof options === 'function') fn = options, options = {};
var routeName = dsl.parent ? dsl.parent + '.' + name : name;
myRouteData[routeName] = { options.myRouteOption };
dsl.route(name, options.fn);
}
Run Code Online (Sandbox Code Playgroud)
用法:
this.resource('foo', function() {
route(this, 'bar', {myRouteOption: true});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |