2017-09-26 178 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選項是不可能的。對於那些有價值的,請確保該值存在於源中。另一種解決方案是修改源代碼。 –