【问题标题】:KendoUI: Unable to bind data to HTML elements from JSON file.KendoUI:无法将数据绑定到 JSON 文件中的 HTML 元素。
【发布时间】:2013-04-11 08:24:24
【问题描述】:

我是 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);

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

以下是有效的 HTML:

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

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

请帮帮我。谢谢!!

- 哈迪克

【问题讨论】:

    标签: mvvm kendo-ui


    【解决方案1】:

    目前 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>
    

    【讨论】:

    • 嗨 Atanas,我不想将它绑定到 Select 元素。我想要的只是将 元素绑定到一个空的 div。图片的 Src 来自 JSON 文件。
    • 很好。没问题 :) 感谢所有帮助...我还在 JSbin 中创建了一个示例项目..但这不是 MVVM 格式...如果您可以将该代码转换为 MVVM ..那也会很有帮助.. link..但是我最后有 JSON 文件...
    • 是的...没错...使用任何 Kendo 小部件(如列表视图或下拉列表)都可以正常工作...但除了 Kendo 小部件之外,任何 HTML 控件都不起作用...再次感谢您的回复!! :)
    猜你喜欢
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    相关资源
    最近更新 更多