Angular ng-model ng-selected

时间:2016-11-18 23:24:11

标签: angularjs model ng-repeat selected

我想将模型值绑定到所选项

<select id="hours" ng-model="v.T_Hour">
    <option ng-repeat="n in [].constructor(24) track by $index" ng-selected="{{$index==v.T_Hour}}" value="{{$index}}">{{$index>9?$index:"0"+$index}}:00</option>
</select>

我想在页面加载后,在select中选择模型'v.T_Hour'的值,我在控制器中指定模型的值,当我查看生成的HTML时,我看到该值被选中在HTML代码中,但未在选择控件中选择,并且选择控件显示空项。

1 个答案:

答案 0 :(得分:1)

试试这个

<select                                                      
    name="name" 
    id="id" 
    ng-options="option.name for option in v.data track by option.value" 
    ng-model="v.selected" 
    class="form-control inline-forms">
    <option value="" selected>{{placeHolder}}</option>
</select>

并在控制器中

$scope.v = {data:[], selected:{}, placeHolder:""}
$scope.v.data = [{name:"nameOne", value:"valueOne"},{name:"nameTwo", value:"valueTwo"},{name:"nameThree", value:"valueThree"}]
$scope.v.selected = $scope.v.data[0]
$scope.v.placeHolder = "Click to Select"

根据Angular文档,ngOption比ngRepeat更好的方法: 在ngRepeat和ngOptions之间进行选择 在许多情况下,可以在元素上使用ngRepeat而不是ngOptions来实现类似的结果。但是,ngOptions提供了一些好处:

通过select作为理解表达式的一部分,如何分配模型的灵活性 通过不为每个重复实例创建新范围来减少内存消耗 通过在documentFragment中创建选项而不是单独创建选项来提高渲染速度 具体而言,从Chrome和Internet Explorer / Edge中的2000个选项开始,选择重复选项会显着减慢速度。 见:https://docs.angularjs.org/api/ng/directive/select