【问题标题】:Can you write pure JavaScript expressions in Kendo MVVM views (as with Knockout)?你能在 Kendo MVVM 视图中编写纯 JavaScript 表达式吗(与 Knockout 一样)?
【发布时间】:2014-06-07 10:41:54
【问题描述】:

在下文中,isDirty 返回一个布尔值,具体取决于用户是否更改了任何可观察的属性。

HTML

<div class="status-message" data-bind="text:isDirty ? user.nickName : user.suffix>

JS

viewModel = new kendo.observable({
   user: {
   emailAddress: user.emailAddress,
   firstName: user.firstName,
   middleInitial: user.middleInitial,
   lastName: user.lastName,
   title: user.title,
   suffix: user.suffix,
   nickName: user.nickName
}
});

我已经使用 Knockout 完成了它,但由于某种原因,我无法让它与 Kendo 的 MVVM 一起使用。

这只是剑道的局限吗?

【问题讨论】:

    标签: javascript mvvm knockout.js kendo-ui


    【解决方案1】:

    data-bind中不能使用JS,但是还有其他方法可以实现你想做的。 一种方法是创建两个状态消息 div 并在两者上使用 visible 绑定。 另一种方法是使用一种方法来获取要显示的数据。

    HTML:

    <div id="bindme">
        <!-- alternative #1 -->
        <input type="text" data-bind="value: user.emailAddress" />
        <div data-bind="visible: isDirty">
            <div class="status-message" data-bind="text: user.nickName"></div>
        </div>
        <div data-bind="invisible: isDirty">
            <div class="status-message" data-bind="text: user.suffix"></div>
        </div>
    
        <!-- alternative #2 -->
        <div class="status-message" data-bind="text: currentValue"></div>
    </div>
    

    JS:

    viewModel = new kendo.observable({
        isDirty: false,
        user: {
            emailAddress: "a",
            firstName: "b",
            middleInitial: "c",
            lastName: "d",
            title: "e",
            suffix: "f",
            nickName: "g"
        },
        currentValue: function () {
            return this.get("isDirty") ? this.get("user.nickName") : this.get("user.suffix")
        }
    });
    
    viewModel.bind("change", function () {
        this.set("isDirty", true);
    });
    
    kendo.bind($("#bindme"), viewModel);
    

    (demo)

    【讨论】:

      猜你喜欢
      • 2010-12-19
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多