分组下拉列表在角材料js中

pieyvz9o  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(422)

我试图使ui类似于屏幕截图中给出的ui。使用angular js材质(v1.1.8)此ui是否可以实现这一点

ncecgwcz

ncecgwcz1#

从中找到以下代码段https://material.angularjs.org/latest/demo/select 在“选项组”部分:

  1. <div ng-controller="SelectOptGroupController" class="md-padding" ng-cloak>
  2. <div>
  3. <h1 class="md-title">Pick your pizza below</h1>
  4. <div layout="row">
  5. <md-input-container style="margin-right: 10px;">
  6. <label>Size</label>
  7. <md-select ng-model="size">
  8. <md-optgroup label="No Surcharge">
  9. <md-option ng-repeat="size in sizes | filter: {surcharge: 'none'}"
  10. value="{{size.name}}">{{size.name}}</md-option>
  11. </md-optgroup>
  12. <md-optgroup label="Additional Surcharge">
  13. <md-option ng-repeat="size in sizes | filter: {surcharge: 'extra'}"
  14. value="{{size.name}}">{{size.name}}</md-option>
  15. </md-optgroup>
  16. </md-select>
  17. </md-input-container>
  18. <md-input-container>
  19. <label>Toppings</label>
  20. <md-select ng-model="selectedToppings" multiple>
  21. <md-optgroup label="Meats">
  22. <md-option ng-value="topping.name" ng-repeat="topping in toppings | filter: {category: 'meat'}">
  23. {{topping.name}}</md-option>
  24. </md-optgroup>
  25. <md-optgroup label="Veggies">
  26. <md-option ng-value="topping.name" ng-repeat="topping in toppings | filter: {category: 'veg'}">
  27. {{topping.name}}</md-option>
  28. </md-optgroup>
  29. </md-select>
  30. </md-input-container>
  31. </div>
  32. <p ng-if="selectedToppings">You ordered a {{size.toLowerCase()}} pizza with
  33. {{printSelectedToppings()}}.</p>
  34. </div>
  35. </div>

以下是:

  1. angular
  2. .module('selectDemoOptGroups', ['ngMaterial'])
  3. .controller('SelectOptGroupController', function($scope) {
  4. $scope.sizes = [
  5. { surcharge: 'none', name: "small (12-inch)" },
  6. { surcharge: 'none', name: "medium (14-inch)" },
  7. { surcharge: 'extra', name: "large (16-inch)" },
  8. { surcharge: 'extra', name: "giant (42-inch)" }
  9. ];
  10. $scope.toppings = [
  11. { category: 'meat', name: 'Pepperoni' },
  12. { category: 'meat', name: 'Sausage' },
  13. { category: 'meat', name: 'Ground Beef' },
  14. { category: 'meat', name: 'Bacon' },
  15. { category: 'veg', name: 'Mushrooms' },
  16. { category: 'veg', name: 'Onion' },
  17. { category: 'veg', name: 'Green Pepper' },
  18. { category: 'veg', name: 'Green Olives' }
  19. ];
  20. $scope.selectedToppings = [];
  21. $scope.printSelectedToppings = function printSelectedToppings() {
  22. var numberOfToppings = this.selectedToppings.length;
  23. // If there is more than one topping, we add an 'and'
  24. // to be grammatically correct. If there are 3+ toppings,
  25. // we also add an oxford comma.
  26. if (numberOfToppings > 1) {
  27. var needsOxfordComma = numberOfToppings > 2;
  28. var lastToppingConjunction = (needsOxfordComma ? ',' : '') + ' and ';
  29. var lastTopping = lastToppingConjunction +
  30. this.selectedToppings[this.selectedToppings.length - 1];
  31. return this.selectedToppings.slice(0, -1).join(', ') + lastTopping;
  32. }
  33. return this.selectedToppings.join('');
  34. };
  35. });
展开查看全部

相关问题