KO如果可观察到的值匹配值显示/隐藏
问题描述:
<input type="text" data-bind="value: myObs" />
var myObs = ko.observable();
<!-- ko if: myObs === "hello" -->
Whatever! html etc...
<!-- /ko -->
如果我的可观察值等于“hello”,那么显示“whatever!”。当用户输入“hello”时,我希望显示该字段,并且当它从输入中移除时,它会再次消失。KO如果可观察到的值匹配值显示/隐藏
答
您需要myObs
后加上括号,否则,你可观察到的功能,相较于"hello"
字符串,而不是观察到本身的价值:
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 -->
请问有没有办法在默认情况下输入“hello”? –
@TomRudge是的,只需要在observable:'myObs:ko.observable()'中删除''hello''部分即可。我只把它放在那里,以显而易见HTML if'条件正在工作。 :) –