ng-repeat中的动态选择选项

时间:2014-11-21 04:33:47

标签: javascript angularjs angularjs-directive angularjs-ng-repeat html-select

我想有一个动态选择选项值绑定到选择下拉列表。

  <div ng-repeat="condition in conditions">

       <div class="form-group">
            <select ng-model="condition.Description" class="form-control">
                     <option value="">- Select -</option>
                     <option ng-value="{{age.Description}}" ng-repeat="age in ageConditions">{{age.Description}}</option>
            </select>

       </div>
  </div>

我喜欢

age in ageConditions

是动态的。我也尝试过ng-options =“dynamicOptions”,但它总是绑定到同一个列表。

我想用ng-repeat实现这一点。

   Repeat 1: 
   <select ng-model="condition.Description" class="form-control">
           <option value="">- Select -</option>
           <option ng-value="ageCondition1">ageCondition1</option>
           <option ng-value="ageCondition2">ageCondition2</option>
   </select>
   Repeat 2:
   <select ng-model="condition.Description" class="form-control">
           <option value="">- Select -</option>
           <option ng-value="yearsCondition1">yearsCondition1</option>
           <option ng-value="yearsCondition2">yearsCondition2</option>
   </select>

如图所示,我希望select中的选项在ng-repeat中是动态的。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

      <select ng-model="condition.Description" class="form-control">
                 <option value="">- Select -</option>
                 <option value="getValue(age, $parent.$index)" ng-repeat="age in ageConditions">               getText(age, $parent.index)</option>
        </select>

请注意使用$ parent。$ index。 动态特性可以实现使用函数返回基于$ index的值。

       $scope.getValue = function(age, index) {
             if(index === 1) return age.Desciption else age.years;
       }


       $scope.getText = function(age, index) {
             if(index === 1) return age.Desciption else age.years;
       }

希望这会有所帮助

答案 1 :(得分:0)

通过创建一个为select创建新范围的指令来解决这个问题。