Est-il possible d'utiliser Knockout's si contraignant sur plusieurs booléens?
Tel que
<div data-bind="if: (property.aTrueValue && property.anotherTrueValue)">...
J'ai essayé de nombreuses syntaxes différentes, mais je n'arrive pas à trouver la bonne syntaxe. Je ne suis pas sûr que ce soit même possible.
Lorsque Knockout traite vos liaisons, il évalue d'abord votre expression.
Si l'expression aboutit à un observable, il évalue alors l'observable comme une commodité pour obtenir la valeur finale sur laquelle le if: fonctionne.
Donc, les deux suivants fonctionnent de manière identique
<div data-bind="if: foo"></div>
<div data-bind="if: foo()"></div>
Une fois que vous quittez le monde des expressions simples se terminant par un observable, vous voulez probablement aussi laisser le sucre derrière vous et toujours évaluer les observables vous-même (pour raison si ce n'est autre chose).
Essayez ce qui suit
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
Vous pouvez - la liaison if prend juste une expression arbitraire. Lorsque vous faites plus que simplement référencer la valeur d'un observable comme ça, vous devrez en fait appeler l'observable comme ceci:
<div data-bind="if: (property.aTrueValue() && property.anotherTrueValue())">...
Voici un travail jsfiddle .