<input type="text" data-bind="value: myObs" />
var myObs = ko.observable();
<!-- ko if: myObs === "hello" -->
Whatever! html etc...
<!-- /ko -->
如果我的可观察值等于“ hello”,则显示“随便什么!”。当用户输入“ hello”时,我希望该字段显示,当它从输入中删除时,它会再次消失。
最佳答案
您需要在myObs
之后添加方括号,否则,您正在将observable函数与"hello"
字符串进行比较,而不是observable本身的值进行比较:
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 -->