Javascript 选择不在ng repeat中动态迭代的选项值
如果您查看下面的代码,我如何动态区分每个选择下拉列表 如果选中,所有下拉列表都显示相同的值 要求是我想根据响应结构动态显示3个下拉列表,从1到10个选项值(在数组中声明)——在本例中,有三个产品,所以需要显示三个动态下拉列表 实现这一目标的有效途径是什么 HTMLJavascript 选择不在ng repeat中动态迭代的选项值,javascript,angularjs,Javascript,Angularjs,如果您查看下面的代码,我如何动态区分每个选择下拉列表 如果选中,所有下拉列表都显示相同的值 要求是我想根据响应结构动态显示3个下拉列表,从1到10个选项值(在数组中声明)——在本例中,有三个产品,所以需要显示三个动态下拉列表 实现这一目标的有效途径是什么 HTML {{value}} JS var myApp=angular.module('myApp',[]); //指令('myDirective',function(){}); //工厂('myService',function(){})
{{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 firstng repeat
将selectedItems
与颜色分开代码中几乎没有错误。您在$scope.product json中遗漏了两个逗号
See updated working fiddle
为什么不使用ng options
?也尝试过了…加载时出现注入器错误预期行为是什么?它应该显示三个下拉列表,所有下拉列表都应该有1到10个值,如果我们在第一个下拉列表中选择3,它应该不会影响其他下拉列表值。应该是这样的,但我已经更新了代码段
See updated working fiddle