使用AngularJS选择占位符

时间:2017-03-13 14:49:21

标签: javascript html css angularjs

我无法通过select获得占位符的想法。如下所示,第一个条目仍为空白。

<select class="form-control" ng-model="refData" required>
     <option ng-repeat="d in refData">
          {{d.value}}
     </option>
     <option value="" disabled hidden selected>View current values</option>
</select>

3 个答案:

答案 0 :(得分:17)

包含一个占位符选项,默认情况下会选中,但不能选择。另请查看ngSelect documentation

视图

<div ng-controller="MyCtrl">
    <select name="mySelect" 
            id="mySelect"
            ng-options="option.name for option in refData track by option.id"
            ng-model="selectedOption">
         <option value="" disabled selected>View current values</option>
     </select>
</div>

AngularJS应用程序

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function ($scope) {
    $scope.refData = [
      {id: '1', name: 'Option A'},
      {id: '2', name: 'Option B'},
      {id: '3', name: 'Option C'}
    ];

    $scope.selectedOption =  "";
});

&gt;在此demo fiddle中尝试。

答案 1 :(得分:2)

<select ng-model="testData" ng-options="test.name for test in testData">
        <option value="" selected>View current values</option>
</select>

鉴于测试数据是:

$scope.testData = [{"name" : "John"}, {"name" : "Micheal"}, {"name" : "Sarah"}];

答案 2 :(得分:1)

我建议使用ng-options

id: 2
data: {
data:   "field1" : "something",
data:   "field2" : "something",
data: }

在您的控制器上,您可以声明

<select ng-options="d as d.value for d in refData" ng-model="refDataSelected"></select>

使用第一个元素作为默认选项

如果要创建虚拟文本,可以使用自定义文本向refData添加新对象,并为其指定一个不真实的ID,如-1。但是当你提交时,你应该检查它的id是否为-1。