仅显示基于 Knockout.js 标记中的属性的不同值

Posted

技术标签:

【中文标题】仅显示基于 Knockout.js 标记中的属性的不同值【英文标题】:Display only distinct values based on property in the markup in Knockout.js 【发布时间】:2016-06-02 00:14:35 【问题描述】:

我有这个标记:

<div data-bind="foreach: package() ? package().Products() : []">
  <ul data-bind="foreach: Items">
    <li>
      <div>
        <img data-bind="attr:  src: ImageUrl, alt: 'ItemId_' + ItemId ">
      </div>
    </li>
  </ul>
</div>

我想要实现的(如果可能在标记中)是仅显示基于 ItemId 的不同项目,因此如果有多个项目具有相同的 ItemId,我将只显示其中一个。

是否可以在标记数据绑定属性中做到这一点?

【问题讨论】:

这是一篇非常广泛的帖子,与其说是问题,不如说是要做的事情。您能否更新帖子并包含足够的 JS 来重现该问题,并包含您当前的尝试+具体说明问题出在哪里? (另外,你用jQuery和ko-mapping打标签,但是帖子里没有相关代码?) @Jeroen 我的问题是是否可以在 html 标记中过滤结果,而不是在 JS 中。所以,如果可能的话,我正在寻找一些指导,而不是要求任何需要在 js 端完成的事情,而是在 html 端使用敲除命令。谢谢 【参考方案1】:

没有直接的方法来过滤 HTML 中的唯一项目,并且将程序逻辑放入 HTML 中不符合良好的 Knockout 编程。创建一个计算来收集唯一项并迭代计算。

【讨论】:

以上是关于仅显示基于 Knockout.js 标记中的属性的不同值的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 数据绑定属性突出显示 [knockout.js]

CSS 绑定在 Knockout JS 中不起作用

使用 Knockout.JS 通过 JSON 将 HTML 复选标记传递到表中

操纵knockout.js中的表

段落文本中的 Knockout.js 回车

Knockout JS - 在没有 ko.mapping 的情况下观察数组的任何属性中的突变