Javascript 如何在ng选项中设置默认值
我可以用angularjs中的默认值设置一个下拉列表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
<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>