2015-03-18 3 views
1

Я хочу установить maxSelectedItems из значения текстового поля. Кроме того, я хочу сбросить значение kendo multiselect, если значение текстового поля изменится. Я пробовал что-то ниже, но он не работает.Kendo Multiselect with AngularJS

<input type="hidden" ng-model="DTO.ProgramID" id="ProgramID" value="3"> 

<input class="form-control" data-val="true" id="ClassSize " maxlength="2" name="ClassSize " ng-model="DTO.ClassSize "type="text" ng-blur="OnClassSizeChange()"> 

<select id="CourseClientIDs" kendo-multi-select k-options="selectClientOptions" ng-model="DTO.CourseClientIDs"></select> 

$scope.selectClientOptions = { 
    placeholder: "---Select Clients---", 
    dataTextField: "ClientFLName", 
    dataValueField: "ClientID", 
    valuePrimitive: true, 
    autoBind: false, 
    dataSource: { 
     type: "jsonp", 
     serverFiltering: true, 
     transport: { 
      read: { 
       url: "Home/ClientDataSource/", 
       cache: false 
      }, 
      parameterMap: function (data, action) { 
       if (action === "read") { 
        if ($scope.DTO.ProgramID != undefined) { 
         return { 
          programID: $scope.DTO.ProgramID 
         }; 
        } 
       } else { 
        return data; 
       } 
      } 
     } 
    } 
}; 

$scope.OnClassSizeChange = function() { 
    if ($scope.DTO.ClassSize == 0) { 
     var message = "Class size cannot be 0."; 
     return false; 
    }else{ 
     $scope.selectClientOptions.maxSelectedItems = $scope.DTO.ClassSize; //Not Working 
     $scope.selectClientOptions.dataSource.read(); //Not Working 
    } 
    return true; 
}; 

Я пытаюсь угловатые с кендо в первый раз. Пожалуйста, помогите мне.

ответ

0

В текстовом поле define ngChange укажите функцию, которая будет выполняться при изменении значения. Предположим, что ngModel для текстового поля находится в $ scope.nvm, попробуйте следующее:

  $scope.nvm = 1; //value in textfield 
      $scope.setnvm = function(){//change maxSelectedItems and reset values 
       var ms = angular.element(document.getElementById("sems")).data("kendoMultiSelect"); 
       ms.setOptions({ 
        maxSelectedItems: $scope.nvm, 
       }); 
       ms.value([]); 
      };