当前位置: 首页 > 知识库问答 >
问题:

Kendo MVVM-简单的值绑定到数据源

顾宸
2023-03-14

我想学习如何在Kendo MVVM中将页面上的输入绑定到数据源。简单地说,假设我有以下html:

<div id="configDiv">
    Call:<input data-bind="value: SystemCall" type="text" /><br />
    <button data-bind="click: save">Save</button>
</div>

以及以下视图模型

var self = this;

    var Model = kendo.data.Model.define({
        id: "SystemId",
        fields: {
            SystemCall: { editable: true }
        }
    });

        self.ViewModel = kendo.observable({
            dataSource: new kendo.data.DataSource({
                transport: {
                    read: "/api/ServiceApi?method=Ref/SystemConfig/",
                    type: "GET"
                },
                schema: {
                    model: Model
                }
            }),
            save: function (e) {
                alert("save config");
            },
        });
        kendo.bind($("#configDiv"), self.ViewModel);

其思想是,从读取url以json格式返回的SystemCall值将绑定到html中的输入字段。出了点问题,因为这不起作用。我在网上搜索了一个简单的例子,没有比这个更复杂的了,但是找不到。如果您能帮助我们开始学习,我们将不胜感激。

共有1个答案

姜泳
2023-03-14

我没有一个完整的工作示例可以分享,但我可以指出一些事情。

Kendo数据源期望您的服务器返回一个项目数组,因此如果您的服务器返回单个对象,例如JSON:

{
    "SystemId": 1,
    "SystemCall": "one"
}

然后它将不知道如何处理它,因为它不是数组。它期望类似于:

[
    {
        "SystemId": 1,
        "SystemCall": "one"
    },
    {
        "SystemId": 2,
        "SystemCall": "two"
    }
]

MVVM绑定无法工作,因为您将其绑定到“SystemCall”,但ViewModel对象没有名为“SystemCall”的属性。这些将位于ViewModel中的一个项目内。数据源

由于数据源希望包含一个数据项数组,因此它通常绑定到ListView或网格小部件以显示每个数据项。ListView中的每个行模板都可以有该系统的输入元素。

在您的Model中,id字段应该包含在字段列表中,如下所示:

var Model = kendo.data.Model.define({
    id: "SystemId",
    fields: {
        SystemId: { type: "number" }, // assuming this is a number.
        SystemCall: { editable: true }
    }
});

我知道这不是一个完整的答案,但我希望这至少能让你朝着正确的方向前进...

 类似资料:
  • 主要内容:1 简单数据绑定的映射关系,2 简单数据绑定的示例数据绑定API用于使用属性访问器或使用注解将JSON与POJO(普通Java对象)进行转换。它有两种类型。 简单数据绑定:在List,String,数值类型,布尔值和NULL对象之间来回转换JSON。 完全数据绑定:将JSON与任何Java类型相互转换。 ObjectMapper读取/写入两种类型的数据绑定的JSON。数据绑定是最方便的方法,类似于XML的JAXB解析器。 1 简单数据绑定的映射关

  • 如何将MVVM值绑定到dropdownlist?下面的输入元素运行良好

  • 本文向大家介绍C#数据绑定(DataBinding)简单实现方法,包括了C#数据绑定(DataBinding)简单实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#数据绑定(DataBinding)简单实现方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍实现非常简单的js双向数据绑定,包括了实现非常简单的js双向数据绑定的使用技巧和注意事项,需要的朋友参考一下 双向数据绑定指的就是,绑定对象属性的改变到用户界面的变化的能力,反之亦然。换种说法,如果我们有一个user对象和一个name属性,一旦我们赋了一个新值给user.name,在UI上就会显示新的姓名了。同样地,如果UI包含了一个输入用户姓名的输入框,输入一个新值就应该会使use

  • 问题内容: 我正在尝试找出将xml文件映射到普通的旧Java对象的最简单方法。 注意:在我的示例中,xml与我想要的POJO不太匹配。 常规JAXB(带有批注)将不起作用,因为JAXM元素名称批注不允许我指定嵌套元素。(即standardName / Name)。 我看过Jibx,但是它似乎过于复杂,并且没有提供我想做的完整示例。 Castro似乎可以执行我想要的操作(使用映射文件),但是我想知道

  • 本文向大家介绍简单谈谈Vue 模板各类数据绑定,包括了简单谈谈Vue 模板各类数据绑定的使用技巧和注意事项,需要的朋友参考一下 『天下武功,唯快不破』√,这一直是对武学造诣方面的追捧,虽然对于这个丝毫不会;更是对待现实工作不懈渴求,乃至苛求。因为这已不是遁隐修行,而是职场卖命,唯有先快速解决需求,方能攫取更为充盈的时间去深究技术机理,以使臻于更强,更强而优于快,如此优良循环得以形成。言归正传,作为