ember.js - 从 Ember 路由添加和检索元数据

标签 ember.js

出于报告目的,我想将一些元数据与 Ember 路由相关联,并且希望按如下方式进行:

this.route('list', { path: '/list', description: 'Master List' });

然后访问此description来自路线本身或其他地方的属性(property),例如 didTransition卡在应用路由器上。我已经查看了 Router 和 Route 的源代码,但不能说我真的理解它,当然还不足以理解如何检索以这种方式指定的自定义属性。我看到有一个名为 DSL 的对象,显然是 thisthis.routemap 中指定Router上的方法,但看不到如何从这里到那里。来自 Ember.Route 的子类,我看到名为 this.router 的属性, 和 this.router.router ,但不清楚这些指向什么。

或者,如果这允许我做我想做的事,以下内容也可以工作:
this.route('list', { path: '/list' }, function() {
    this.description = "Master List";
});

我可以将自定义属性与 Router#map 中指定的路由关联吗? ,如果是这样怎么办?

最佳答案

当在路由器中定义路由时,似乎没有一种优雅的方式来设置有关路由的元数据,但也许可以在您的应用程序 Controller 中尝试这个丑陋的解决方案:

currentPathChange: function () {
  switch(this.get('currentPath')){
    case 'test.index':
      console.log('test.index is the foo!');
      break;
    case 'test.new':
      console.log('test.new is the bar!');
      break;
  }
}.observes('currentPath')

JSBin DEMO

关于ember.js - 从 Ember 路由添加和检索元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403151/

相关文章:

javascript - Ember 过渡和渲染完成事件

javascript - 使用 ember 数据计数模型

testing - 如何断言 Ember 测试中的运行循环 DOM 更改

javascript - Ember Handlebars 模板访问深层对象属性

javascript - 如何验证 ember.js 中的空文本框和最小长度

javascript - 属性绑定(bind)不起作用 - Ember.js

javascript - 父组件中的 Ember 数据更改未反射(reflect)在 UI 上

javascript - 检查 Ember.js 中每个循环中的重复项

ember.js - 使用 pod 语法的 Ember CLI

javascript - Emberjs Handlebars 内容绑定(bind)编辑字段不起作用