2014-12-01 2 views
0

Я работаю над обновлением одного из моих проектов UML с угловым/кендо от v2014.2.903 до v2014.3.1119. Я столкнулся с несколькими примерами, когда v2014.3.1119 нарушает функциональность, которая отлично работает в v2014.2.903. Я решил создать пару JSFiddles, чтобы проиллюстрировать проблемы, но, к сожалению, JSFiddle, который указывает на v2014.2.903, похоже, даже не распознает пользовательский интерфейс Kendo.Kendo UI + Angular - v2014.2.903 vs v2014.3.1119 Вопросы JSFiddle

v2014.3.1119 JSFiddle (это работает) ... http://jsfiddle.net/lejuan5150/w0711rdg/

v2014.2.903 JSFiddle (это не работает) ... http://jsfiddle.net/lejuan5150/4svqnaz6/

Оба содержат один и тот же код и конфигурацию в стороне от версии пользовательского интерфейса Kendo, на который они ссылаются. Вот код:

HTML:

<div> 

<div data-ng-controller="personController">  

    <div 
     kendo-grid="personGrid" 
     k-options="personGridOptions" 
     k-ng-delay="personGridOptions">  
    </div> 

    <br /> 
    First Name Combo Box: 

    <select 
     kendo-combo-box="firstNameComboBox" 
     k-options="firstNameComboBoxOptions" 
     k-ng-delay="firstNameComboBoxOptions" 
     k-ng-model="selectedPerson.firstName"   
    ></select>   

    <br /> 
    Last Name Combo Box:   

    <select    
     kendo-drop-down-list="lastNameDropDownList" 
     k-options="lastNameDropDownListOptions" 
     k-ng-delay="lastNameDropDownListOptions" 
     k-ng-model="selectedPerson.lastName" 
    ></select>   

</div> 

JavaScript:

var app = angular 
.module("app", [ 
    "kendo.directives" 
]); 

app.controller("personController", [ 
    "$scope", 
    personController 
]); 

function personController(
    $scope 
){ 
    init(); 

    function init(){ 

     var personData = [{ 
      firstName: "Joe", 
      lastName: "Smith", 
      status: "Active" 
     },{ 
      firstName: "John", 
      lastName: "Smith", 
      status: "Active" 
     },{ 
      firstName: "Travis", 
      lastName: "Smith", 
      status: "Expired" 
     }]; 

     $scope.personDataSource = new kendo.data.DataSource({ 
      data: personData 
     });   

     $scope.firstNamesData = [{ 
      id: "Joe", 
      firstName: "Joe" 
     },{ 
      id: "George", 
      firstName: "George" 
     },{ 
      id: "John", 
      firstName: "John" 
     },{ 
      id: "Travis", 
      firstName: "Travis" 
     }]; 

     $scope.lastNamesData = [{ 
      id: "Jones", 
      lastName: "Jones" 
     },{ 
      id: "Smith", 
      lastName: "Smith" 
     }];   

     bindPersonGrid(); 
     bindFirstNameComboBox(); 
     bindLastNameDropDownList(); 
    } 

    function bindPersonGrid(){ 

     $scope.personGridOptions = { 
      dataSource: $scope.personDataSource, 
      selectable: "row", 
      dataBound: onPersonGridDataBound, 
      change: onPersonGridRowSelected    
     }   
    } 

    function onPersonGridDataBound(){ 

     var grid = this; 
     var firstRow = grid.element.find("tbody tr:first"); 
     grid.select(firstRow); 
    } 

    function onPersonGridRowSelected(
     event 
    ){ 

     var grid = event.sender; 
     $scope.selectedPerson = grid.dataItem(grid.select());  
     $scope.$digest(); 
    } 

    function bindFirstNameComboBox(){ 

     $scope.firstNameComboBoxOptions = { 
      dataSource: $scope.firstNamesData, 
      dataTextField: "firstName", 
      dataValueField: "id" 
     }; 
    }  

    function bindLastNameDropDownList(){ 

     $scope.lastNameDropDownListOptions = { 
      dataSource: $scope.lastNamesData, 
      dataTextField: "lastName", 
      dataValueField: "id" 
     }; 
    }  
} 

Кто-нибудь знает, почему v2014.2.903 JSFiddle не работает?

ответ

0

Я нашел проблему. Kendo v2014.2.903 не любит k-ng-delay при использовании жестко закодированного массива объектов JavaScript.

Смежные вопросы