私は Ractive.JS バインディングを使用しています:
var alertsBinding = new Ractive({
el: '.alerts',
template: alertsTemplate,
data: {
alerts: alerts,
selectedAlertID: null
}
});
テンプレートはテンプレート式を使用して、項目が現在選択されている項目であるかどうかを検出し、それに応じてクラスを追加します。
<div class="alert {{ id === selectedAlertID ? 'selected' }}">
...
</div>
アイテムが選択されたら、次を実行します。
alertsBinding.set({selectedAlertID: selectedAlert.id});
設定後、条件が真であるべき場合でも、条件が常に偽であることがわかります。また、以下を追加して確認しました。
id{{ id}} selected{{ selectedAlertID}}
アイテムが実際に選択されていることを確認するためのアラート内。
それでも条件は false であり、クラスは設定されていません。
テンプレート式の等価性をテストするにはどうすればよいですか?