我正在使用远程服务器信息创建动态表单。我的代码是
$.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未定义”时返回错误,它正在工作
答案 0 :(得分:0)
我发现了问题。
我在由data-init触发的函数内部调用了ajax。事件的顺序是
绑定视图模型 beforeShow 在里面 显示
因此,当我在数据显示中触发函数时,它开始工作。
感谢Spike提供了非常有用的帖子(http://codingwithspike.wordpress.com/2012/12/31/kendo-mobile-gotchas-tips-tricks/),这有助于解决问题。