値を割り当てられていないKnockout observableのdisplay: none
属性でCSSクラスを設定しようとしています。ノックアウト:観察可能な値に基づいてCSSの可視性を変更してください
HTMLコード:
<div class="userParent actionHandle dragHandle">
<span class="userName" data-bind="text: userName"></span><span class="userDOB" data-bind="text: userDOB"></span><span class="userGender" data-bind="text: userGender"></span>
</div>
とノックアウトコンストラクタ:
this.userName = ko.observable('');
this.userDOB = ko.observable('');
this.userGender = ko.observable('');
その後、私は明らか値
this.userName('');
this.userDOB('');
this.userGender('');
/display: none
を追加設定します、私はCSSを追加したい、その時点ですべてのuser*
クラスに。これら二つの質問Knockout: Change css class based on value of observable
が、運のない
-
から
私が続いているソリューションを提供しています。
CSSの変更のための私のコードは
self.CssBind = function (k) {
var CssBind = '';
if (self.userName() === '') {
CssBind = 'none';
}
if (self.userDOB() === '') {
CssBind = 'none';
}
if (self.userGender() === '') {
CssBind = 'none';}
return CssBind;
});
と変更されたHTML
<div class="userParent actionHandle dragHandle">
<span class="userName" data-bind="text: userName, style: {display $root.CssBind}"></span><span class="userDOB" data-bind="text: userDOB, style: {display $root.CssBind}"></span><span class="userGender" data-bind="text: userGender, style: {display $root.CssBind}"></span>
</div>
ように私は私が見逃しているものを簡単に何かがなければならないと思います見えます。
私はもっと簡単な方法で処理できると期待しています。ありがとうございます。 – JackTheKnife