1

我正在尝试按照此处linkTo的说明使用

这是我的模板:

{{#each model}}
    {{#linkTo "nodes.show" this tagName="tr"}}
        <td>{{shortenHash id}}</td>
        ...
        <td>
            <a {{action startEditing this bubbles=false}}><i class="icon-pencil"></i><a/>&nbsp;&nbsp;
            <a {{action destroyRecord this bubbles=false}}><i class="icon-remove"></i><a/>
        </td>
    {{/linkTo}}
{{/each}}

但这有几个问题:

  • 该行不可点击
  • 动作是可点击的<a>,但光标没有显示它

我正在使用最新的库:

DEBUG: ------------------------------- ember.js:356
DEBUG: Ember.VERSION : 1.0.0-rc.5 ember.js:356
DEBUG: Handlebars.VERSION : 1.0.0-rc.4 ember.js:356
DEBUG: jQuery.VERSION : 1.9.1 ember.js:356
DEBUG: ------------------------------- ember.js:356
DEBUG: location=http://localhost:9001/#/nodes apiUrl=//localhost:8000 ember.js:356
DEBUG: SettingsApp.VERSION : 0.0.0 ember.js:356
DEBUG: EMBER_DATA_VERSION : Last commit: ed99201 (2013-06-18 04:39:18 -0700) ember.js:356
DEBUG: ------------------------------- ember.js:356
4

3 回答 3

3

linkTo默认情况下会生成一个锚' A'标签。此标签不允许直接附加到TABLE,TBODYTR元素。请参阅规范中的“允许的内容”部分,

您可能想要做的是将单击事件处理程序附加到 TR 连接到触发转换到“ nodes.show”的操作。

{{#each model}}
  <tr {{action "goToLink" model.id}}>
    <td>{{shortenHash id}}</td>
  </tr>
{{/each}}

和控制器,

var NodesController = Ember.ArrayController.extend({
  actions : {
    goToLink : function(id) {
        this.transitionToRoute('nodes.show', id);
    }
  }
});
于 2014-12-08T12:14:46.070 回答
1

这可能是非常自以为是,但请耐心等待。如果您必须在最终进行分页的地方呈现大列表,您应该采用不同的方法,而不是使用旧的table标记。这就是ember-list-view进来的地方。它是一个 ember 插件,可让您拥有很长的列表,但性能非常好。这是通过重用 DOM 元素而不是一次创建所有元素来实现的。{{linkTo}}我提出这个的原因是因为我看到更多的人在使用with 时遇到这种问题tagName="tr"

有关更多信息,ember-list-view请考虑:

于 2013-06-19T14:02:14.753 回答
0

对于那些谷歌搜索,Ember 列表视图不适用于当前稳定的 Ember > 1.8 https://github.com/emberjs/list-view/issues/169

也许看看 ember-cloak 是否有类似的东西...... https://github.com/eviltrout/ember-cloaking

于 2014-12-07T02:42:37.440 回答