我想从淘汰 observableArray 向页面添加选项列表。当要显示的项目数量超过可配置数量时,应显示“更多选项...”按钮(或链接)。按下此按钮应显示所有项目并将按钮文本更改为“更少选项”。为了使它更有趣:该按钮应该只在有超过 1 个项目被隐藏时才显示。
下面的代码有效(请参阅this fiddle),但没有更清洁和更通用的解决方案(例如使用自定义绑定)吗?
<ul data-bind="foreach: options">
<li data-bind="visible: $root.showMore() || $index() < $root.showMoreCount() || $root.options().length <= $root.showMoreCount()+1, text: $data"></li>
</ul>
<a data-bind="visible: options().length-1 > showMoreCount(), text: showMore() ? 'Less options' : 'More options', click: function () { showMore(!showMore()) }"></a>