Kendo UI MVVM - 如何获得相反或不对或!数据绑定时的二进制变量

Sam*_*Sam 7 mvvm kendo-ui

我想要做的是:

<input data-bind="value: Adult.FirstName, visible: editable" />
<span data-bind="text: Adult.FirstName, visible: !editable"></span>

viewModel = kendo.observable({
    editable: false
});
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

Uncaught SyntaxError: Unexpected token !
Run Code Online (Sandbox Code Playgroud)

我能够弄清楚如何做到这一点的唯一方法是:

<input data-bind="value: Adult.FirstName, visible: editable" />
<span data-bind="text: Adult.FirstName, visible: not('editable')"></span>

viewModel = kendo.observable({
    editable: false,
    not: function(value) { return !this.get(value);},
});
Run Code Online (Sandbox Code Playgroud)

和:

<input data-bind="value: Adult.FirstName, visible: editable" />
<span data-bind="text: Adult.FirstName, visible: notEditable"></span>

viewModel = kendo.observable({
    editable: false,
    notEditable: function() { return !this.get("editable");},
});
Run Code Online (Sandbox Code Playgroud)

但我宁愿只跟踪一个没有额外功能的变量.

Rob*_*ner 15

您可以只使用不可见的数据绑定.

http://docs.telerik.com/kendo-ui/getting-started/framework/mvvm/bindings/invisible

或者,您可以监视viewModel的更改事件,检查可编辑的更改,并将第二个viewModel属性更改为相反的值.然后你有两个属性,但实际上只需要管理其中一个属性.