Javascript 如何在ng选项中设置默认值

Javascript 如何在ng选项中设置默认值,javascript,angularjs,ionic-framework,html-select,ng-options,Javascript,Angularjs,Ionic Framework,Html Select,Ng Options,我可以用angularjs中的默认值设置一个下拉列表 <select name="repeatSelect" id="repeatSelect" ng-model="repeatSelect" ng-init=" repeatSelect = data[0].id"> <option ng-repeat="option in data" value="{{option.id}}">{{option.name}}</option> </sele

我可以用angularjs中的默认值设置一个下拉列表

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

但是没有用。示例使用
ng init
设置
ng选项的默认值

以下是:


我已经使用您的代码和
ng选项实现了您所需的功能

完整代码

<div ng-app="ngrepeatSelect">
    <div ng-controller="ExampleController">
        <form name="myForm">
            <label for="repeatSelect">Angular select:</label>
            <select name="repeatSelect" 
   id="repeatSelect" 
   ng-model="repeatSelect"
   ng-init=" repeatSelect = data[0]"  
   ng-options="option.name for option in data track by option.id">
</select>
        </form>
        <br/> <tt>Selected value: {{repeatSelect.id}}</tt>

    </div>
</div>
<br/>

角度选择:

所选值:{{repeatSelect.id}

所有这些都没有使用
nginit

从角度文档:

此指令可能被滥用,以便在模板中添加不必要的逻辑量。ngInit只有一些合适的用途,例如,在下面的演示中可以看到,为ngRepeat的特殊属性别名;以及通过服务器端脚本注入数据。除了这几种情况之外,还应该使用控制器而不是ngInit来初始化作用域上的值

在我看来,设置默认值的正确方法是简单地用从
ng选项中选择的值预先填充
ng model
属性,其余部分由angular完成

基本上,当您定义
$scope
属性时,您的选择将绑定以从
数据
数组中为其指定默认值。如果
数据
数组来自ajax请求,那么在获得
数据
后,只需分配它即可

.controller('test', ['$scope', function ($scope) {
    $scope.data = [{name: 'one', id: 1}, {name: 'two', id: 2},{name: 'three', id: 3}];
    $scope.repeatSelect= $scope.data[0];
}]);
有一点需要注意。如果在表达式中使用
作为
关键字,则必须为
ng模型
指定实际属性,让其选择

请参阅完整的小提琴演示:

我将推荐一个示例 HTML部分

<select class="form-control" ng-model="data.selectedOption" required ng-options="option.name as option.name for option in venueNamelists"  ng-change="getmediationRooms(data.selectedOption)"></select>

在我的控制器中

$scope.data={selectedOption:$scope.venueNamelists[i].name}


模型值应该等于VenuNameList中的键、值对。

我也想知道,因为我是这样做的+1@klskl我想这只是因为有人不喜欢因为错误使用了
nginit
而被叫来。我想不出任何其他原因,即使是文档也说它应该只用于几个不包括这一点的用例。如果ng选项中没有ng模型值,该怎么办?它将显示为空。这是假设您的第一项是“-Select-”。如果你没有这个选择怎么办?我应该手动添加它吗?
.controller('test', ['$scope', function ($scope) {
    $scope.data = [{name: 'one', id: 1}, {name: 'two', id: 2},{name: 'three', id: 3}];
    $scope.repeatSelect= $scope.data[0];
}]);
<select class="form-control" ng-model="data.selectedOption" required ng-options="option.name as option.name for option in venueNamelists"  ng-change="getmediationRooms(data.selectedOption)"></select>