2016-11-07 7 views
0
<input type="text" data-bind="value: myObs" /> 
    var myObs = ko.observable(); 
     <!-- ko if: myObs === "hello" --> 
      Whatever! html etc... 
     <!-- /ko --> 

私の観測値が "hello"の場合は、 "whatever!"と表示されます。ユーザーが「こんにちは」を入力すると、このフィールドが表示され、入力から取り除かれると再び消えます。あなたがそうでなければ、"hello"文字列ではなく、それ自体、観察の値に観測可能な機能を比較している、myObs後に括弧を追加する必要がKO IF observableが値の一致/不一致

答えて

3

var vm = { 
 
    myObs: ko.observable("hello") 
 
} 
 

 
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<input type="text" data-bind="value: myObs, valueUpdate: 'input'" /> 
 
<!-- ko if: myObs() === "hello" --> 
 
    Whatever! html etc... 
 
<!-- /ko -->

+0

はない方法はありますデフォルトでは入力に「こんにちは」が表示されますか? –

+1

@TomRudgeうん、観測リスト内の '' hello''部分を取り除くだけです: 'myObs:ko.observable()'。私はHTMLの 'if'条件が働いていることを明らかにするためにそこに置いています。 :) –