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

时间:2014-02-07 18:03:59

标签: 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
});

但我收到错误:

Uncaught SyntaxError: Unexpected token !

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

<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);},
});

<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");},
});

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

1 个答案:

答案 0 :(得分:15)

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

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

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