如何使用相同的ng-options集添加多个select元素

时间:2014-09-02 09:44:27

标签: javascript angularjs ng-options angular-ngmodel

这个问题可能非常微不足道,但它让我疯狂。 我的页面上可以有n个动态添加的元素。所有这些都将为他们提供相同的选项。

<select class="form-control action"
      data-ng-options="action.name for action in statementData" 
      data-ng-model="selectedRules.statementOptions"
> 

这是其中一个元素的加价。​​

问题:当我在一个选择元素中更改或选择某些内容时,所有其他元素都会更新。我不想那样。这可能发生在同一个模型对象中。但如果我删除模型,那么就没有数据。

2 个答案:

答案 0 :(得分:0)

将原始模型复制到其他组件。例如,使用angular.copy()。

答案 1 :(得分:0)

如果你只是复制变量,它通过引用传递并更改为1将改变另一个。

尝试使用angular.copy()创建两个变量,并将其用于两个选择选项。

尝试以下内容:

<!-- First select -->
<select class="form-control action"
  data-ng-options="action.name for action in statementData" 
  data-ng-model="selectedRules.statementOptions">

<!-- Second select -->
<select class="form-control action"
  data-ng-options="action.name for action in statementData1" 
  data-ng-model="selectedRules.statementOptions"> 

在控制器中你必须这样做。

$scope.statementData1 = angular.copy(statementData);

通过使用angular.copy(),可以在$ scope中为这两个变量分别创建副本。