リスト内のすべてのリスト項目にクリック イベントをバインドしています。
<ul class="modal-subject-list" data-bind="foreach: filteredSubjects">
<li data-bind="click: $parent.pickSubject, css: {alreadyAddedBackground: hasBeenAdded}">
<!-- Lots of code here -->
</li>
</ul>
click:
「hasBeenAdded」が true に解決される場合、バインディングを無効にしたいと考えています。私はそれを処理するいくつかの厄介な方法を知っています:
- 2 つのリスト項目を用意します。1 つは 用
if: hasBeenAdded
、もう 1 つは 用if: !hasBeenAdded
です。これは DRY とはかけ離れています。 - このチェックを JavaScript で処理し、ビューをそのままにしておきます。基本的に無効にする必要があるリスト項目に対して不要なマークアップが生成されるため、これは好ましくありません。
「clickIf」バインディングを登録する方法はありますか?