如何使用Angular以编程方式设置selectize.js值?

时间:2014-11-16 18:27:50

标签: javascript jquery angularjs angularjs-directive selectize.js

我正在为selectize.js使用此AngularJS指令:https://github.com/kbanman/selectize-ng

我有两个下拉菜单,我希望根据另一个selectizeVat中选择的值填充其中一个selectizeProducts。我已阅读selectize.js API并找到了setValue方法,但我该如何利用它?

以下是我的模板和控制器代码:

模板

<div ng-controller="dropdownController">
  <select selectize="selectizeProducts" options="products" ng-model="product"></select>
  <select selectize="selectizeVAT" options="vats" ng-model="chosenProduct.vat"></select>
</div>

控制器

app.controller('dropdownController', function($scope, $filter) {
  $scope.chosenProduct = '';
  $scope.vats = [
    {'id': 0, 'vat': '25%'},
    {'id': 1, 'vat': '16%'},  
    {'id': 2, 'vat': '6%'},
  ];
  $scope.selectizeProducts = {
    valueField: 'id',
    labelField: 'name',
    searchField: 'name',
    onChange: function(id) {
      // Get an object from $scope.products by id
      $scope.chosenProduct = $filter('getById')($scope.products, id);
    } 
  };
  $scope.selectizeVat = {
    valueField: 'id',
    labelField: 'vat',
    searchField: 'vat',
  };
});

$ scope.products也是这样的:

{'id': 1, 'name': 'My option', 'nr': 1, 'vat': 0}

,基本思路是选择产品,并在selectizeVat下拉列表中自动填充增值税。

谢谢!

1 个答案:

答案 0 :(得分:2)

好的,

所以我找到了自己问题的答案。

需要像这样定义

$scope.chosenProduct以填充增值税:

{'id': 1, 'name': 'My option', 'nr': 1, 'vat': [0]}

好像你需要为seletize定义一个dict,以便填充你的<select>