2015-03-18 2 views
1

Je souhaite définir maxSelectedItems à partir d'une valeur de zone de texte. En dehors de cela, je veux réinitialiser kendo multiselect si la valeur de la zone de texte change. J'ai essayé ci-dessous mais ça ne marche pas.Kendo Multiselect avec 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; 
}; 

Je suis en train d'essayer angularjs avec kendo première fois. Aidez-moi, s'il vous plaît.

Répondre

0

Dans la zone de texte, définissez ngChange spécifiez la fonction à exécuter lors du changement de valeur. En supposant que ngModel for textbox est dans $ scope.nvm, essayez ceci:

  $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([]); 
      };