Javascript 选择不在ng repeat中动态迭代的选项值

Javascript 选择不在ng repeat中动态迭代的选项值,javascript,angularjs,Javascript,Angularjs,如果您查看下面的代码,我如何动态区分每个选择下拉列表 如果选中,所有下拉列表都显示相同的值 要求是我想根据响应结构动态显示3个下拉列表,从1到10个选项值(在数组中声明)——在本例中,有三个产品,所以需要显示三个动态下拉列表 实现这一目标的有效途径是什么 HTML {{value}} JS var myApp=angular.module('myApp',[]); //指令('myDirective',function(){}); //工厂('myService',function(){})

如果您查看下面的代码,我如何动态区分每个选择下拉列表

如果选中,所有下拉列表都显示相同的值

要求是我想根据响应结构动态显示3个下拉列表,从1到10个选项值(在数组中声明)——在本例中,有三个产品,所以需要显示三个动态下拉列表

实现这一目标的有效途径是什么

HTML


{{value}}
JS

var myApp=angular.module('myApp',[]);
//指令('myDirective',function(){});
//工厂('myService',function(){});
myApp.controller('MyCtrl',函数MyCtrl($scope){
$scope.colors={“类别”:“学生”
“项目”:[
{
“产品”:{
“名称”:“abc”,
“年龄”:“24”
}
“boo”:真的吗
},
{
“产品”:{
“名称”:“定义”,
“年龄”:“44”
}
},
{
“产品”:{
“名称”:“ghi”,
“年龄”:“22”
}
}
]};
$scope.quan=false;
$scope.arr=[];

对于(var a=1;a提供唯一的id来选择像id={$index+1}}这样的元素,以便在所有选择的下拉列表中进行区分。

问题是您的
selectedItems
一个并且您有
颜色
作为
数组

您可以将
selectedItems
放入
颜色中,如下所示:

$scope.colors.map(function(obj) {
  return obj.selectedItems = {
    val: $scope.arr[0]
  }
})
<select ng-model="product.selectedItems.val" ng-init="product.selectedItems.val = product.selectedItems.val + ''">
    <option ng-repeat="value in arr | limitTo:quantity">{{value}}    
    </option>
</select>
现在,将您的
更改如下:

$scope.colors.map(function(obj) {
  return obj.selectedItems = {
    val: $scope.arr[0]
  }
})
<select ng-model="product.selectedItems.val" ng-init="product.selectedItems.val = product.selectedItems.val + ''">
    <option ng-repeat="value in arr | limitTo:quantity">{{value}}    
    </option>
</select>


或者,您可以使用
$index
inside first
ng repeat
selectedItems
颜色分开

代码中几乎没有错误。您在$scope.product json中遗漏了两个逗号

See updated working fiddle 

为什么不使用
ng options
?也尝试过了…加载时出现注入器错误预期行为是什么?它应该显示三个下拉列表,所有下拉列表都应该有1到10个值,如果我们在第一个下拉列表中选择3,它应该不会影响其他下拉列表值。应该是这样的,但我已经更新了代码段
See updated working fiddle