剑道编辑模板阵列

时间:2015-02-25 13:45:51

标签: javascript jquery kendo-ui kendo-scheduler kendo-template

我使用自定义编辑模板关注kendo example

在示例中有一个自定义编辑模板,因此当您双击日历以创建新事件时,将显示自定义字段。

“联系人”有一个自定义字段,其中有一个数组作为数据源。

此数据源是我从服务器获取的数组(需要1-2秒才能获得)。 使用标签准备编辑模板的事实使得不可能简单地在我获得数据的ajax调用的成功(或完成)处理程序中创建。

我看到的唯一方法是在页面加载时准备好数据,以便模板选择它。

我想要在我的数据加载完成后创建模板,或者在加载后将数据添加到模板中。

要模拟服务器加载数据所需的时间,我使用1秒的setTimeout,这样编辑模板就不会获取数据。

重新创建:

  1. 双击日历以创建活动
  2. 注意联系人字段为空(因为页面加载时数据未准备好)
  3. 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

这与异步延迟无关。您的kontaktdata数组是您传递给setTimeout的匿名函数的本地数组,因此它在评估模板的上下文中根本不存在。

您的数据必须在数据模型本身或全局上下文中定义。

另一个问题是数据结构本身必须存在 - kendo.data.DataSource或数组,如果您希望现有视图知道新数据,则需要使用新数据更新数据结构。如果您只是替换它,编辑模板无法立即拾取它(如果您打开一个新的编辑对话框,它当然也可以工作)。

例如,如果您这样做,它将起作用:

var kontaktdata = [];
setTimeout(function(){    
     kontaktdata.push.apply(kontaktdata, [
         { text: "Demo B Client", value: 1 },
         { text: "Martin", value: 2 },
         { text: "Herbert", value: 3 }]);
}, 4000);