0

我是 kendo ui 和 mvvm 的新手,我正面临这个问题:

我有一个以下格式的 JSON 文件:

[
{
"Id":1,
"img":"shoes.png"},
{"Id":2,
"img":"books.png"}
    }
]

我正在使用剑道人在线提到的示例阅读文件,如下所示:

var crudServiceBaseUrl = "pro.json";
    var viewModel = kendo.observable({
            productsSource: new kendo.data.DataSource({
                transport: {
                    read: {
                        url: crudServiceBaseUrl,
                        dataType: "json"
                    },
                    update: {
                        url: crudServiceBaseUrl,
                        dataType: "json"
                    },
                    destroy: {
                        url: crudServiceBaseUrl,
                        dataType: "json"
                    },
                    parameterMap: function(options, operation) {
                        if (operation !== "read" && options.models) {
                            return {
                                models: kendo.stringify(options.models)
                            };
                        }
                        return options;
                    }
                },
                batch: true,
                schema: {
                    model: {
                        id: "Id"
                    }
                }
            })
        });

        kendo.bind($("#form-container"), viewModel);

我能够将数据源中的数据绑定到剑道控件,例如下拉列表或其他剑道控件。但是当我尝试将数据绑定到 HTML 控件(主要是 img 标签)时。它停止工作并给出一个错误,说“this.parent”不是一个函数。

以下是有效的 HTML:

Select Product: <select data-role="dropdownlist" data-value-field="Id" data-text-field="img"
                         data-bind="source: productsSource"></select>

但是绑定到普通<img>标签不起作用。简而言之,我需要使用 kendo ui mvvm 将基于 src 值的图像绑定到 div。

请帮帮我。谢谢!!

- 哈迪克

4

1 回答 1

0

目前 Kendo MVVM 无法将数据源绑定到 HTML 元素。只有 Kendo UI 小部件可以绑定到kendo.data.DataSource. 使用小部件,例如 ListView 将适用于DIV

<div data-role="listview" 
     data-template="template"
     data-bind="source: productsSource">
</div>

<script id="template" type="text/x-kendo-template">
   <img data-bind="attr: { src: img }" />
</script>
于 2013-04-11T11:22:17.840 回答