难以获得动态链接行为

时间:2014-12-04 19:25:44

标签: ember.js

我想要一个动态创建的link-to(一个自定义的半后退按钮)。此链接显示在application.hbs中,并在某些路径更改时更改。我通过发送带有link-to参数信息的事件来完成此任务:

// in patient-route.js
afterModel: function(model) {
  this.send('setHeader', {text: model.get('fullName'), linkTo: 'patient', args: [model.get('id')]});
}

// in application-route.js
actions: {
  setHeader: function(linkTo) {
    linkTo.url = this.router.generate(args.back.route);
    this.set('headerLinkTo', linkTo);
  },
  fakeLinkTo: function(linkTo) {
    this.transitionTo.apply(this, linkTo.args.unshift(linkTo.linkTo));
  }
}

模板看起来像

<a {{bind-attr href=headerLinkTo.url}} {{action 'fakeLinkTo' headerLinkTo}}>{{headerLinkTo.text}}</a>

这很笨拙,但目前正在工作。这不支持活动状态(虽然不是我需要的)但是如果这更容易做的话会很好(加上我很确定我不应该像这样使用路由器)。

似乎类似的问题在生成link-to的组件中悄悄上升(例如:http://ember-addons.github.io/bootstrap-for-ember/#/show_components/tabs-with-routes - 无法传递动态段)。

有什么更好的方法可以做到这一点,或者有什么可以做到的?

1 个答案:

答案 0 :(得分:0)

您可以尝试this addon for dynamic links in Ember,它应该支持您尝试做的事情。