Angular Kendo 最新版本升级问题

Angular Kendo Latest Version Up-gradation Issue

自过去 3 年以来,我们一直在从事一个项目。我们正在使用 Angular 1.2.6 和 Kendo 2014 版本 UI。现在由于性能需要,我们想迁移到 Angular 1.6 和 Kendo 2017 版本 UI。在这里,我们在升级时遇到以下问题。

  1. 我们正在使用 Kendo 控件,ID 如下。

    select id='ddlDDLID_{{GUIDVaraible}}' kendo-下拉列表

所以我们使用 GUID,表达式 ID 为 kendo 下拉列表。升级到最新版本后,我们不会从控制器中替换 GUIDVaraible。 它与表达式 'ddlDDLID_{{GUIDVaraible}}'

的字符串变量保持相同
  1. Kendo 下拉列表是自动 selecting 列表中的第一项,但升级到最新版本后,默认情况下不会自动 selecting 第一项。

请帮忙!!!

关于第一个问题,在 2015 年第 2 季度,Kendo 团队在小部件初始化方面引入了重大更改,现在同步进行,与之前异步不同。更多细节可以在他们的文档中找到:

http://docs.telerik.com/kendo-ui/AngularJS/Troubleshooting/common-issues#angularjs-templates-are-not-evaluated-before-widget-initialization

简而言之,您需要避免使用包含“{{ }}”Angular 模板的 HTML 属性。解决方案是构建一个具有更高优先级的自定义指令,该指令将在 Kendo 小部件初始化之前评估模板。

关于第二个问题,组件的选择行为在 2015 年第一季度发生了变化,以更好地匹配 HTML Select 的工作方式。 Breaking Changes 部分再次正确记录了更多详细信息和可能的解决方法:

http://docs.telerik.com/kendo-ui/backwards-compatibility/2015-backward-compatibility#changes-from-2014-q3-sp2-201431411

 <input id="dropdownlist" />
    <script>
        var widget = $("#dropdownlist").kendoDropDownList({
            dataSource: ["foo1", "foo2"]
        });

        widget.value(""); //this will clear selection

        if (widget.select() == -1) { //if value does not exist, select first one
            widget.select(0);
        }
    </script>

查看 DropDownList 部分了解更多详情。