使用ng-repeat生成选择选项(使用Demo)

时间:2017-03-14 19:20:36

标签: angularjs angularjs-ng-repeat angular-ngmodel

控制器:

$scope.send_index = function(event, val){ 
    console.log(val);
    $scope.variable = 'vm.areas['+val+'].name';
    console.log( $scope.variable ); 
};

,这是在视图中:

<select ng-model="vm.areas">
    <option ng-repeat="area in vm.areas"  ng-value="area" id="{{area}}" ng-click="send_index($event, $index)">{{area.name}}
</select>
<input value="{{variable}}">

其中&#34; vm&#34;是我的模特。

表达式内部的表达式(Angular)

我的问题是我需要一个{{array []}},索引作为另一个表达式,

  

例如:{{Array [{{val}}]}}。

已经尝试过这个:

 $scope.variable = ''+'vm.areas['+val+'].name'+'';

问题出在视图中,&#34;变量&#34;显示为字符串

  

(vm.areas [0]。名称)

并且它得到了该查询的勇气。

2 个答案:

答案 0 :(得分:4)

这不是将ng-model与AngularJS中的<select>元素一起使用的正确方法:

<!-- ERRONEOUS
<select ng-model="vm.areas">
    <option ng-repeat="area in vm.areas"  ng-value="area" id="{{area}}" ng-click="send_index($event, $index)">{{area.name}}
</select>

<input value="{{variable}}">
-->

无需使用ng-click指令。 select directive会自动处理。 ng-model指令接收或设置所选的选项。

请参阅:

&#13;
&#13;
angular.module('ngrepeatSelect', [])
  .controller('ExampleController', ['$scope', function($scope) {
    $scope.data = {
     model: null,
     availableOptions: [
       {id: '1', name: 'Option A'},
       {id: '2', name: 'Option B'},
       {id: '3', name: 'Option C'}
     ]
    };
 }]);
&#13;
<script src="https://unpkg.com/angular/angular.js"></script>
<div ng-app="ngrepeatSelect">
  <div ng-controller="ExampleController">
  <form name="myForm">
    <label for="repeatSelect"> Repeat select: </label>
    <select name="repeatSelect" id="repeatSelect" ng-model="data.model">
      <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
    </select>
  </form>
  <hr>
  <tt>model = {{data.model}}</tt><br/>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用data-ng-value代替value

<input data-ng-value="{{variable}}">