【问题标题】:Angular Kendo Latest Version Up-gradation IssueAngular Kendo 最新版本升级问题
【发布时间】:2017-09-26 07:42:11
【问题描述】:

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

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

    选择 id='ddlDDLID_{{GUIDVaraible}}' kendo-drop-down-list

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

  1. Kendo Drop Down List 到现在都是自动选择列表中的第一项,但是升级到最新版本后,默认不自动选择第一项。

请帮忙!!!

【问题讨论】:

    标签: angularjs kendo-ui angular-kendo


    【解决方案1】:

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

    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 部分了解更多详情。

    【讨论】:

    • 关于第二个答案,需要在应用程序级别进行全局处理。所以关于在应用程序级别处理的任何想法。
    • 恐怕可用的解决方法仅适用于小部件级别。我能想到的让它在应用程序级别上工作的唯一想法是修改源代码。但是,在这种情况下,您需要在以后的每次升级中维护自定义代码。再想一想,是否可以为那些没有价值的下拉菜单定义 index: 0 选项。对于有值的,确保值存在于源中。另一种解决方案是修改源代码。
    猜你喜欢
    • 2020-03-10
    • 2021-08-22
    • 1970-01-01
    • 2017-10-11
    • 2022-10-13
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2022-08-05
    相关资源
    最近更新 更多