EmberJS - 如何使用linkTo动态生成链接?

时间:2013-04-15 17:25:26

标签: ember.js

有没有办法通过传递带路径路径的变量来使用link-to帮助器动态生成链接?

例如,不要像这样对路径进行硬编码:

{{#linkTo "route.subroute" model}}{{model.title}}{{/linkTo}}

我希望能够将link-to助手传递给一个包含如下路径的变量:

{{#linkTo destination model}}{{model.title}}{{/linkTo}}

这个用例允许我合并只有这条路径不同的模板。例如,如果有两个集合,每个集合具有不同的目标。使用每个帮助器呈现时,模板是相同的,除了link-to中的路径。

如果我可以在视图的控制器中保存这个变量并传递它,我只能为这两个列表使用一个模板。

我考虑过手动构建这样的路径:

<a {{bindAttr href="destination"}}>{{model.title}}</a>

但是这没有与路由器的集成来确定我需要的活动状态。

3 个答案:

答案 0 :(得分:2)

  

有没有办法通过传递带路径路径的变量来使用linkTo助手动态生成链接?

目前不是。

  

这个用例允许我合并只有这条路径不同的模板。例如,如果有两个集合,每个集合具有不同的目标。

同意这是一个有效的用例,我希望linkTo helper将来能够支持它。同时,因为您只有两个集合,您可以使用模板中的条件

来完成此任务
{{#if isRouteOne}}
  {{#linkTo "routeOne.subrouteOne" model}}{{model.title}}{{/linkTo}}
{{else}}
  {{#linkTo "routeTwo.subrouteTwo" model}}{{model.title}}{{/linkTo}}
{{/if}}

答案 1 :(得分:2)

您可以使用{{linkTo}}代替{{action}},并通过在模型的destination属性中指定的路径名​​来处理转换事件。

答案 2 :(得分:0)

还有另一个非常相似的问题,我answer这个问题。使用link-to帮助器的内联版本可以实现解决方案。

在这种情况下,我们会:

{{link-to model.title destination model}}

将编译为:

<a href="#/route/subroute/3856">
  Click me
</a>