ng-selected 不能在选择框中使用 ng-model - Angularjs [英] ng-selected is not working with ng-model in select box - Angularjs

查看:30
本文介绍了ng-selected 不能在选择框中使用 ng-model - Angularjs的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

虽然 ng-model 用于选择框,而 ng-selected 也用于选项中,但某些条件下 ng-selected 不起作用.

While ng-model is used in select box and ng-selected is also used in options with some condition that time ng-selected is not working.

如果我将删除 ng-model 而不是 ng-selected 工作,但如果我将删除 ng-model 而不是我应该如何获取控制器中选择框的值.

If I will remove ng-model than ng-selected is working, but if i will remove ng-model than how I should get the value of select box in controller.

请帮忙!

这是我的代码...

HTML:

<select class="form-control" ng-change="accessModeSelected()">
     <option ng-selected="mode.status == '1'"  ng-repeat="mode in storageResult.accessMode" ng-value="mode.name" name="accessMode{{$index}}" id="accessMode">
           {{mode.name}}
     </option>
</select>

AngularJS:

$scope.storageResult   = {
           "storageAccount":"Enable", 
           "user": "sdcard",
           "pass": "sdcard",
           "wifiIP": "0",
           "ipAddr": "0",
           "accessMode": [
                {"name": "Local Storage","status": "0"},
                {"name":"WiFi Storage", "status": "1"},
                {"name":"Internet Storage", "status": "0"}
            ]
         }

推荐答案

使用 ng-optionsng-init(用于设置默认值)而不是 ng-repeat.

Use ng-options and ng-init(for setting default value) instead of ng-repeat.

ng-options 专门用于 select

<select class="form-control" ng-init="statusselect='WiFi Storage'" ng-model="statusselect" ng-options="mode.name as mode.name for mode in storageResult.accessMode">

</select> Selected Value : {{statusselect}}

FIDDLE

使用ng-repeat

我更喜欢 ng-options,但是如果你想将 ng-selectedng-repeat 一起使用,你需要提供一个从你的 controller

I would prefer ng-options,but if you want to use ng-selected with ng-repeat you'll need provide a default selected value to ng-model from your controller

<select class="form-control" ng-model="statusselect">
     <option ng-selected="{{mode.name == statusselect}}" ng-repeat="mode in storageResult.accessMode" value="{{mode.name}}" name="accessMode{{$index}}" id="accessMode">
           {{mode.name}}
     </option>
</select> Selected Value : {{statusselect}}

内部控制器

$scope.storageResult  = {
           "storageAccount":"Enable", 
           "user": "sdcard",
           "pass": "sdcard",
           "wifiIP": "0",
           "ipAddr": "0",
           "accessMode": [
                {"name": "Local Storage","status": "0"},
                {"name":"WiFi Storage", "status": "1"},
                {"name":"Internet Storage", "status": "0"}
            ]
         }
   $scope.statusselect = $scope.storageResult["accessMode"][1]["name"];

FIDDLE

这篇关于ng-selected 不能在选择框中使用 ng-model - Angularjs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆