【问题标题】:select value does not shows default value when using ng-repeat使用 ng-repeat 时选择值不显示默认值
【发布时间】:2015-10-19 05:26:22
【问题描述】:

为什么使用 ng-options 选择标签可以通过显示默认选择值正常工作,但如果我使用 ng-repeat 则同样无法正常工作。

这里是代码,

  <!-- this works-->

<select class="form-control" ng-model="selectValue" ng-options="option.id as option.name for option in availableOptions"> 
</select>

<!-- this also works-->

    <select ng-model="selectValue">
       <option ng-repeat="options in availableOptions" value="{{options.id}}" ng-selected="selectValue === options.id">{{options.name}}</option>
    </select> 

<!-- this doesnt works-->

<select ng-model="selectValue">
   <option ng-repeat="options in availableOptions" ng-value="options.id" ng-selected="selectValue === options.id">{{options.name}}</option>
</select> 

在 app.js 中,

$scope.selectValue="2";
    $scope.availableOptions = [
      {id: '1', name: 'Option A'},
      {id: '2', name: 'Option B'},
      {id: '3', name: 'Option C'}
    ];

虽然 HTML 显示了 selected 属性,但它仍然没有在视图中正确呈现

这是相同的 plunker link

【问题讨论】:

  • 第一种语法是首选的推荐语法;您为什么要尝试使用非首选语法来解决问题?
  • 是的,我知道第一种方法是首选,但只是为了学习,我尝试了第二种方法。你能弄清楚为什么它不起作用吗??

标签: html angularjs drop-down-menu angularjs-ng-repeat


【解决方案1】:

虽然在页面上设置下拉菜单的正确方法应该是使用ng-options,但您可以更改下面的标记以使其与ng-repeat 版本一起使用。

标记

<select ng-model="selectValue">
   <option ng-repeat="options in availableOptions" value="{{options.id}}">
     {{options.name}}
   </option>
</select>

Working Plunkr

【讨论】:

  • 但是你知道为什么它不能和ngValue一起使用吗??
  • @MaheSirius 非常奇怪..最糟糕的是,当将 option 标签更改为 &lt;option ng-repeat="options in availableOptions" ng-value="options.id"&gt;{{options.id}}&lt;/option&gt; 时它会起作用
  • 你很奇怪。 .不知道怎么弄出来。
  • @MaheSirius 你还想从我这里得到什么吗?
猜你喜欢
  • 2014-02-16
  • 2016-12-11
  • 1970-01-01
  • 2014-02-22
  • 2014-07-04
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多