如何使用angular js将选择下拉列表中的值填充为默认值

时间:2013-07-02 09:42:04

标签: javascript jquery html5 angularjs

 <select data-ng-model="userInf.role" class="span12" required>
    <option value="" selected="selected" disabled="disabled">Choose one</option>
    <option data-ng-repeat="role in roles" value="{{ role.text }}">{{ role.text }}</option>
</select>

userService.getUser($scope.userInf,
        function( data ) // success
        {

        $scope.userInf = {
                username: data.userName,
                firstname: data.firstName,
                middlename: data.middleName,
                lastname: data.lastName,
                title: data.title,
                organization: data.organization,
                role: data.authorization.role,
                dateOfBirth:data.dateOfBirth,
                save: 'update'              
            };
        },

其他字段即将推出但选择价值未来

在inspect元素中我可以看到

<select data-ng-model="userInf.role" class="span12 ng-pristine ng-valid ng-valid-required" required="">
        <option value="? string:Analyst ?"></option>
        <option value="" selected="selected" disabled="disabled">Choose one</option>
        <!-- ngRepeat: role in roles --><option data-ng-repeat="role in roles" value="Analyst" class="ng-scope ng-binding">Analyst</option>
        <option data-ng-repeat="role in roles" value="Admin" class="ng-scope ng-binding">Admin</option>
        </select>

3 个答案:

答案 0 :(得分:1)

我知道Angular有这个目的的ng-init指令。为什么不尝试ng-options指令?您可以将ng-init指令与ng-options并排使用,ng-options比ng-repeat更灵活。

<select ng-model="userInf.role" ng-options="role for role in roles" ng-init="userInf.role = '' " class="span12 ng-pristine ng-valid ng-valid-required" required="">
    <option value="" disabled="disabled">Choose one</option>
</select>

ng-init会将您的ng-model(下面定义的选项的值)设置为您想要的任何值,在这种情况下,将ng-model设置为'',这是您的第一个选项的值。 ng-options将使用数组中的值为您填充其余选项。您可能需要一些设置才能在选项中显示正确的名称和值。看这里https://docs.angularjs.org/api/ng/directive/select

答案 1 :(得分:1)

是的,我会这样做:


var app = angular.module('app', [])
app.controller('exampleCtrl', function ($scope) {
  $scope.options = ["a", "b", "c"]
  $scope.selected = $scope.options[1]
})

<select ng-options="o for o in options" ng-model="selected"></select>      

将在加载时选择选项“b”

答案 2 :(得分:0)

<select name="repeatSelect" id="repeatSelect" ng-model="data.repeatSelect">
      <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
    </select>