假设在视图模型中定义了一个可观察的字符串stringVal。
data-bind="visible:!stringVal()"
或包含stringVal()的任何其他表达式都不起作用。抛出的错误是视图模型中需要函数stringVal()。
类似的表达式很容易使用boolean observables。
答案 0 :(得分:0)
试试这个 http://jsfiddle.net/w00t_/h6dy46s7/1/
HTML:
<h1 data-bind="visible: notstringval">
<span data-bind="text: stringval()"></span>
<span>yo</span>
</h1>
JS:
function myViewModel() {
self = this;
self.stringval = ko.observable("hello");
self.notstringval = ko.pureComputed(function () {
return !self.stringval();
})
}
ko.applyBindings(myViewModel);
答案 1 :(得分:0)
这可能是你的Knockout版本。它适用于3.0+版本,但不适用于2.x
function myViewModel() {
self = this;
self.stringval = ko.observable("hello");
}
ko.applyBindings(myViewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<h1 data-bind="visible: !stringval()">
<span data-bind="text: stringval()"></span>
<span>yo</span>
</h1>
<input data-bind="value: stringval" />