仅显示基于 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]