【发布时间】:2013-06-08 16:21:30
【问题描述】:
我遇到了一个奇怪的情况,使用 Ember 和 Handlebars。我有一张记录表。用户应该单击任何记录并被重定向到项目详细信息——这是一个非常常见的用例。
但是,Ember 无法正确呈现链接。当我通过 linkTo 标记仅包装单个单词或元素时它可以工作,但当我包装整个表格行时它不起作用。
{{#each item in controller.content}}
{{#linkTo "detail" item}}
<tr>
this is part of the link, correctly
<td>and this is not</td>
<td>{{item.someInfo}}</td> <!-- this neither -->
</tr>
{{/linkTo}}
{{/each}}
当我希望整个 tr 用作链接时,我该如何解决这个问题?
【问题讨论】:
-
您可能应该在
td内呈现链接,而不是在链接内呈现tr > td -
我需要整行(
tr,作为块元素)充当链接的角色,而不仅仅是单个tds 的文本字段。 -
一个
linkTo总是会渲染一个a元素,你想在这里使用的是action助手。 -
你是对的。但是,为什么
linkTo生成的a元素不能包含复杂的元素结构,比如tr? -
@PavelS。关于
{{linkTo}}生成的元素类型,您可以通过tagName将其从a更改为td,方法是执行{{linkTo 'someRoute' someModel tagName=td}} body of td goes here {{/linkTo}}... 并不是最好的解决方案,因为linkTo的目的是link...to 东西,如果你替换它,你将没有锚行为(状态栏中的 url、鼠标指针等).. 只是把它扔在那里如何更改生成的元素的标签