动态创建表单中的Kendo Ui ReferenceError

时间:2014-05-05 19:52:01

标签: kendo-ui

我正在使用远程服务器信息创建动态表单。我的代码是

$.ajax({
    url: xxx.php',
    data: {
        EXTAPP_ID: extappId,
        OBJECT_NAME: sessionStorage.getItem('ssObjectName')
    },
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    success: function (model) {
            console.log(model);
              obsRecordFields = kendo.observable(model);
            // bind the model to the container
            kendo.bind($("#recordDetailView"), obsRecordFields);
            kendo.init($("#Field1"));

    }
});

生成表单字段的模板是

<script id="fieldsTemplate" type="text/x-kendo-template">
    <li>
        <label data-bind="attr: { for: name}, text: label"></label>
         # if (get("fieldtype") == "input") {#
        <input data-bind="value: value, attr: { type: type, name: name}" # if (get("required")) {# required #} # />
            #}else{#
                    <select id="name" data-role="dropdownlist" data-bind="source: options, value: value, attr: { type: type, name: name}" data-text-field="option_value" data-value-field="option_id"  />
            #}#

    </li>
</script>

我的问题是

当我第一次在控制台日志中返回错误时,当我再次刷新同一页面和所有相关功能时,它在“未捕获的ReferenceError:option_id未定义”时返回错误,它正在工作

1 个答案:

答案 0 :(得分:0)

我发现了问题。

我在由data-init触发的函数内部调用了ajax。事件的顺序是

绑定视图模型 beforeShow 在里面 显示

因此,当我在数据显示中触发函数时,它开始工作。

感谢Spike提供了非常有用的帖子(http://codingwithspike.wordpress.com/2012/12/31/kendo-mobile-gotchas-tips-tricks/),这有助于解决问题。