Javascript 如何使用相同的ng选项集添加多个select元素

Javascript 如何使用相同的ng选项集添加多个select元素,javascript,angularjs,ng-options,angular-ngmodel,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" > 这是其中一个元素的标记 问题:当我在一个select元素中更改或选

这个问题可能很琐碎,但它让我发疯。 我可以在我的页面上动态添加n个元素。所有这些都将具有相同的选项集

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

这是其中一个元素的标记


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

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

如果只是复制变量,则其通过引用传递并更改为一个变量将更改另一个变量

尝试使用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"> 

通过使用angular.copy()可以为$scope中的两个变量创建单独的副本。

甚至我也想过使用angular.copy。但这里的问题是,我可以有数百个这样的select元素,它们是动态添加的,我不知道有多少会出现在页面上。用户可以点击按钮添加这些元素,需要的次数不限。甚至我也考虑过使用angular.copy。但这里的问题是,我可以有数百个这样的select元素,它们是动态添加的,我不知道有多少会出现在页面上。用户可以点击按钮添加这些元素,需要任意次数。如果我有办法在select语句中传递一个新模型的话。那可能行得通。但我不知道怎么做。我现在可以考虑的一个逻辑是在范围内创建一个数组。Push inital statementData变量。然后,当用户单击按钮创建新的select…时,在运行时创建一个新副本,如statementData1,并将其放入数组中。因此,所有用户选择值都将在数组中,您可以根据业务需求使用它。实际上,我认为我们需要一个用于模型副本而不是数据副本的数组。我使用了这种方法,制作了一系列模型,看起来效果不错。
$scope.statementData1 = angular.copy(statementData);