2017-09-26 177 views
0

我们从过去3年开始一直致力于一个项目。我们正在使用Angular 1.2.6和Kendo 2014版本UI。现在,随着性能的需要,我们希望迁移到Angular 1.6和Kendo 2017版UI。在这里,我们正在获得下面的问题,但升级。Angular Kendo最新版本升级问题

  1. 我们使用Kendo Controls With ID如下。

    选择ID = 'ddlDDLID _ {{GUIDVaraible}}' 剑术-下拉列表

,所以我们正在使用GUID与剑术的表达ID下拉列表。升级到最新版本后,我们没有从控制器中取代GUIDVaraible。 它是剩余一样表达的字符串varaible“ddlDDLID _ {{GUIDVaraible}}”

  • 剑道下拉列表被升级到最新的自动选择第一个项目在列表到目前为止,但经过版本,默认情况下不自动选择第一项。
  • 请帮忙!!!

    回答

    1

    关于第一个问题,在2015年第二季度,Kendo团队在小部件初始化中引入了一个突破性变化,这个变化现在是同步发生的,与以前不同,它是异步的。更多细节可以在他们的文档中找到:

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

    总之,你需要使用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节的更多细节。

    +0

    关于第二个答案,它需要在应用程序级别进行全局处理。所以在应用程序级别处理任何想法。 –

    +0

    恐怕可用的解决方法仅适用于小部件级别。唯一可以想到的,使它在应用程序级别上工作的就是修改源代码。但是,在这种情况下,每次升级时都需要维护自定义代码。第二个想法是,为那些没有价值的下拉菜单定义index:0选项是不可能的。对于那些有价值的,请确保该值存在于源中。另一种解决方案是修改源代码。 –