0

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

  1. 我们正在使用带有 ID 的 Kendo Controls,如下所示。

    选择 id='ddlDDLID_{{GUIDVaraible}}' 剑道下拉列表

所以我们使用 GUID 和剑道下拉列表的表达式 id。升级到最新版本后,我们不会从控制器中替换 GUIDVaraible。它与表达式'ddlDDLID_{{GUIDVaraible}}'的字符串变量保持相同

  1. 剑道下拉列表到现在都是自动选择列表中的第一项,但升级到最新版本后,默认情况下不会自动选择第一项。

请帮忙 !!!

4

1 回答 1

1

关于第一个问题,在 2015 年第二季度,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>

Check the DropDownList section for more details.

于 2017-09-26T07:49:54.513 回答