如何使用角度JS设置一个下拉列表控件的选择的选项如何使用角度JS设置一个下拉列表控件的选择的选项(H

2019-05-08 17:37发布

我采用了棱角分明的JS和我需要设置采用了棱角分明的JS下拉列表控件的选择的选项。 原谅我,如果这是荒谬的,但我是新与角JS

这里是我的HTML的下拉列表控件

 <select ng-required="item.id==8 && item.quantity > 0" name="posterVariants"
   ng-show="item.id==8" ng-model="item.selectedVariant" 
   ng-change="calculateServicesSubTotal(item)"
   ng-options="v.name for v in variants | filter:{type:2}">
  </select>

它被填充后,我得到

 <select ng-options="v.name for v in variants | filter:{type:2}" ng-change="calculateServicesSubTotal(item)"
ng-model="item.selectedVariant" ng-show="item.id==8" name="posterVariants"
ng-required="item.id==8 &amp;&amp; item.quantity &gt; 0" class="ng-pristine ng-valid ng-valid-required">
    <option value="?" selected="selected"></option>
    <option value="0">set of 6 traits</option>
    <option value="1">5 complete sets</option>
</select>

我如何设置的控制value="0"被选中?

Answer 1:

我希望我明白你的问题,但ng-model指令创建一个双向的控制所选择的项目和价值之间的结合item.selectedVariant 。 这意味着,改变item.selectedVariant在JavaScript,或者控制切换的值,更新等。 如果item.selectedVariant的数值为0 ,该项目应该得到选择。

如果variants是对象的数组, item.selectedVariant必须被设置为这些对象中的一个。 我不知道你在你的范围哪些信息,但这里有一个例子:

JS:

$scope.options = [{ name: "a", id: 1 }, { name: "b", id: 2 }];
$scope.selectedOption = $scope.options[1];

HTML:

<select data-ng-options="o.name for o in options" data-ng-model="selectedOption"></select>

这将离开“B”项被选中。



Answer 2:

我不知道这是否会帮助任何人或没有,但因为我面临着同样的问题,我想到了我分享如何得到了解决。

您可以通过属性,在使用轨道 ng-options

假设您有:

variants:[{'id':0, name:'set of 6 traits'}, {'id':1, name:'5 complete sets'}]

那么你可以说你的ng-options为:

ng-options="v.name for v in variants track by v.id"

希望这可以帮助别人的未来。



Answer 3:

如果指定值0 item.selectedVariant它应被自动选中。 检查出样品http://docs.angularjs.org/api/ng.directive:select只需通过分配其默认情况下选择红色$scope.color='red'



Answer 4:

我看到这里已经写了很好的答案,但有时写在其他形式同样可以有所帮助

<div ng-app ng-controller="MyCtrl">
  <select ng-model="referral.organization" ng-options="c for c in organizations"></select>
</div>

<script type='text/javascript'>
  function MyCtrl($scope) {
    $scope.organizations = ['a', 'b', 'c', 'd', 'e'];
    $scope.referral = {
      organization: $scope.organizations[2]
    };
  }
</script>


Answer 5:

简单方法

如果你有一个用户的响应,或者你定义的数组/ JSON,首先你需要设置控制器,那么你在HTML把相同型号名称的选定值。 这个例子,我写了最简单的方法来解释。
简单的例子
内部控制器:

$scope.Users = ["Suresh","Mahesh","Ramesh"]; 
$scope.selectedUser = $scope.Users[0];

你的HTML

<select data-ng-options="usr for usr in Users" data-ng-model="selectedUser">
</select>

复杂的例子
内部控制器:

$scope.JSON = {
       "ResponseObject":
           [{
               "Name": "Suresh",
               "userID": 1
           },
           {
               "Name": "Mahesh",
               "userID": 2
           }]
   };
   $scope.selectedUser = $scope.JSON.ResponseObject[0];

你的HTML

<select data-ng-options="usr.Name for usr in JSON.ResponseObject" data-ng-model="selectedUser"></select>
<h3>You selected: {{selectedUser.Name}}</h3>    


Answer 6:

尝试以下方法:

JS文件

this.options = { 
        languages: [{language: 'English', lg:'en'}, {language:'German', lg:'de'}]
};
console.log(signinDetails.language);

HTML文件

<div class="form-group col-sm-6">
    <label>Preferred language</label>
    <select class="form-control" name="right" ng-model="signinDetails.language" ng-init="signinDetails.language = options.languages[0]" ng-options="l as l.language for l in options.languages"><option></option>
    </select>
</div>


Answer 7:

它可以是有用的。 绑定剂量并不总是工作。

<select id="product" class="form-control" name="product" required
        ng-model="issue.productId"
        ng-change="getProductVersions()"
        ng-options="p.id as p.shortName for p in products">
</select>

例如。 您填写的选项从REST的服务列表源模型。 选择的值被称为befor填充列表和设置。 执行与HTTP $列表选项其余请求后进行。 但选择的选项未设置。 通过不明原因的影子AngularJS $消化执行已不绑定选择,因为它shuold是。 我得使用jQuery集中选择。 它`重要的! 角阴影添加前缀通过NG-重复optinos产生ATTR“价值”的价值。 对于int是“数字”。

$scope.issue.productId = productId;
function activate() {
   $http.get('/product/list')
     .then(function (response) {
       $scope.products = response.data;

       if (productId) {
           console.log("" + $("#product option").length);//for clarity                       
           $timeout(function () {
               console.log("" + $("#product option").length);//for clarity
               $('#product').val('number:'+productId);
               //$scope.issue.productId = productId;//not work at all
           }, 200);
       }
   });
}


文章来源: How to set a selected option of a dropdown list control using angular JS