将Angular select ng-init设置为数组中的第一个值

sim*_*ing 12 javascript angularjs angularjs-ng-init

我有一个简单的选择元素,我试图强制提供一个值来提交表单,我尝试了设置所需的属性以及使用ng-init来确保选择了一个值并且都失败了.

ng-options用来创建一个具有ref属性的对象数组的值列表.然后我想ng-init用于将显示的值设置为数组中的第一个Object.ref.

<select name="refmarker" class="input-block-level form-width-adjust" ng-model="model.refmarker" ng-options="rm.ref for rm in refmarkers" ng-disabled="editable" ng-init="model.refmarker='refmarkers[0].ref'" required></select>
Run Code Online (Sandbox Code Playgroud)

我没有运气就试过以下

ng-init="model.refmarker='refmarkers[0]'"
ng-init="model.refmarker='refmarkers[0].ref'"
ng-init="model.refmarker='rm.ref'"
Run Code Online (Sandbox Code Playgroud)

required属性也不起作用?角度选择元素是否错误或我做错了什么?

Noi*_*she 23

required仅适用于表单元素.

你想要的是ng-init ="model.refmarker = refmarkers [0]"

<!doctype html>
<html lang="en" data-ng-app="app">
<head>
    <meta charset="utf-8">
    <title>Test</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js"></script>
    <script type="text/javascript">

        angular.module('app',[])
                .controller('Main',function($scope)
                {
                    $scope.model = {};
                    $scope.refmarkers = [{ref:'abc'},{ref:'def'},{ref:'ghi'}];
                });
    </script>
</head>
<body ng-controller="Main">
{{'Angular'}}
<select ng-model="model.refmarker" ng-options="rm.ref for rm in refmarkers" ng-init="model.refmarker=refmarkers[0]"></select>
{{model.refmarker}}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 这个答案确实有效,但使用ng-init并不是一个很好的做法.模型初始化应该在控制器中进行. (4认同)