【问题标题】:Kendo edit template array剑道编辑模板数组
【发布时间】:2015-02-25 13:45:51
【问题描述】:

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

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

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

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

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

但是,我想在数据加载完成时创建模板,或者在加载后将数据添加到其中。

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

重新创建:

  1. 双击日历创建活动
  2. 请注意联系人字段为空(因为页面加载时数据尚未准备好)

任何帮助表示赞赏

【问题讨论】:

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


    【解决方案1】:

    这与异步延迟无关。您的 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);
    

    【讨论】:

    • 感谢您解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多