AngularJS select詳細用法

select 是 AngularJS 預設的一組directive。下面是其官網api doc給出的用法:AngularJS:selectphp

大意是,select中的ngOption能夠採用和ngRepeat指令相似的循環結構,其data source能夠是array或者是object。針對兩種data source又有衍生的好幾種用法。可是官網的例子實在是太少了。html

下面是針對幾個不太容易理解的用法的例子。angularjs

先上controllerexpress

<!-- lang: js -->
function selectCtrl($scope) { $scope.selected = ''; $scope.model = [{ id: 10001, mainCategory: '男', productName: '水洗T恤', productColor: '白' }, { id: 10002, mainCategory: '女', productName: '圓領短袖', productColor: '黑' }, { id: 10003, mainCategory: '女', productName: '短袖短袖', productColor: '黃' }]; } 

實例一:基本下拉效果

usage: label for value in arrayapi

<!-- lang: html --> <select ng-model="selected" ng-options="m.productName for m in model"> <option value="">-- 請選擇 --</option> </select> 

效果:數組

實例一效果圖

說明ide

  1. usage中的 value 也就是 ng-options 中的 m,而 m 是數組model的一個元素,它是一個變量
  2. usage中的 label 也就是 ng-options 中的m.productName, 其實就是一個 AngularJS Expression

實例二:自定義下拉顯示名稱

usage: label for value in arrayui

<!-- lang: html --> <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) for m in model"> <option value="">-- 請選擇 --</option> </select> 

效果spa

在此輸入圖片描述

說明code

  1. 能夠看到,usage 中的 label 能夠根據需求拼接出不一樣的字符串

實例三: 讓選項分組

usage: label group by group for value in array

<!-- lang: html --> <select ng-model="selected" ng-options="(m.productColor + ' - ' + m.productName) group by m.mainCategory for m in model"> <option value="">-- 請選擇 --</option> </select> 

效果

在此輸入圖片描述

說明

  1. 這裏使用了group by,經過$scope.model中的mainCategory字段進行分組

實例四:自定義ngModel的值

usage: select as label for value in array

<!-- lang: html --> <select ng-model="selected" ng-options="m.id as m.productName for m in model"> <option value="">-- 請選擇 --</option> </select> 

效果

在此輸入圖片描述

相關文章
相關標籤/搜索