简体   繁体   English

如何使用包含可观察到的字符串的表达式使基因敲除可见绑定起作用?

[英]How to get knockoutjs visible binding work with expressions containing observable strings?

Lets say there is an observable string stringVal defined in the view model. 可以说在视图模型中定义了一个可观察的字符串stringVal。

data-bind="visible:!stringVal()" or any other expression containing stringVal() doesnt work. data-bind="visible:!stringVal()"或任何其他包含stringVal()的表达式无效。 The error thrown is that a function stringVal() is expected in the view model. 引发的错误是在视图模型中需要使用stringVal()函数。

Similar expression easily works with boolean observables. 类似的表达式很容易与布尔可观察值一起使用。

Try this http://jsfiddle.net/w00t_/h6dy46s7/1/ 试试这个http://jsfiddle.net/w00t_/h6dy46s7/1/

HTML: HTML:

<h1 data-bind="visible: notstringval">
    <span data-bind="text: stringval()"></span>
    <span>yo</span>
</h1>

JS: JS:

function myViewModel() {
    self = this;
    self.stringval = ko.observable("hello");
    self.notstringval = ko.pureComputed(function () {
        return !self.stringval();
    })
}

ko.applyBindings(myViewModel);

It's probably your version of Knockout. 这可能是您的淘汰赛版本。 It works with versions 3.0+ but not with 2.x 它适用于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" /> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM