6

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

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

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

我希望能够向link-to助手传递一个保存路径的变量,如下所示:

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

这样做的用例是允许我合并仅通过此路径不同的模板。例如,如果有两个集合,每个集合都有不同的目的地。当使用 each 助手渲染时,模板是相同的,除了link-to.

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

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

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

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

4

3 回答 3

2

而不是{{linkTo}},您可以通过模型属性中{{action}}指定的路由名称来使用和处理转换事件。destination

于 2013-04-16T06:21:08.593 回答
2

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

现在不行。

这样做的用例是允许我合并仅通过此路径不同的模板。例如,如果有两个集合,每个集合都有不同的目的地。

同意这是一个有效的用例,我希望 linkTo 助手将来支持它。同时,由于您只有两个集合,您可以使用模板中的条件来完成此操作

{{#if isRouteOne}}
  {{#linkTo "routeOne.subrouteOne" model}}{{model.title}}{{/linkTo}}
{{else}}
  {{#linkTo "routeTwo.subrouteTwo" model}}{{model.title}}{{/linkTo}}
{{/if}}
于 2013-04-15T17:51:10.467 回答
0

还有另一个非常相似的 SO Question,我在其中回答了这个问题。该解决方案可以使用帮助程序的内联版本link-to

在这种情况下,我们将:

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

这将被编译为:

<a href="#/route/subroute/3856">
  Click me
</a>
于 2016-10-06T19:41:29.113 回答