我有2个下拉列表,这是我的json,应该填充这些:
$scope.categorias = [
{nome:"Blusa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Camisa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Calça", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Casaco", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Sobretudo", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Saia", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Vestido", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Blazer",tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Gravata", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Camisa", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"leggins", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Cueca", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Sutiâ", tamanhos:["55","60","65","70","75","80","85","90"]},
{nome:"Pijama", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Chapeu", tamanhos:["46","48","50","52","54"]},
{nome:"Gorro", tamanhos:["46","48","50","52","54"]},
{nome:"Sapato", tamanhos:["18","20","22","24","26","28","30","32","34","36","38","40","42","44","46","48","50","52"]},
{nome:"Oculos", tamanhos:["54","55","56","57"]},
{nome:"Bolsa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Cachecol", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Cinto", tamanhos:["36","38","40","42","44","46","48","50"]}
]
在第一个我只想要与名称相关的字符串,我这样做了:
<select class="form-control" name="categorias" ng-model="produtos.categoria" ng-options="option.nome as option.nome for option in categorias | orderBy:'nome' " >
<option value="">- Selecciona uma categoria -</option>
</select>
在第二个我想要的tamanhos与我在frist drop中得到的名字有关,
例如:在第一滴我得到Oculos所以当我点击drop1时我想要drop 2填充:“54”,“55”,“56”,“57”我举了最小的例子:d
所以我这样做了:
<div class="form-group">
<label>Tamanho</label>
<select class="form-control" ng-model="produtos.tamanho" ng-options=" produtos.categoria for option in categorias.tamanhos"></select>
</div>
但不起作用:S需要一些帮助来弄明白:/
答案 0 :(得分:0)
将categoria
的完整值设置为produtos.categoria
,然后在第二个select
中使用它。
<select
name="categorias"
ng-model="produtos.categoria"
ng-options="categoria as categoria.nome for categoria in categorias"
>
<option value="">- Selecciona uma categoria -</option>
</select>
<select
ng-model="produtos.tamanho"
ng-options="id in produtos.categoria.tamanhos"
></select>
P.S。:请在您的代码中使用英语,至少如果您在这里寻求帮助。谢谢:))
答案 1 :(得分:0)
您走在正确的道路上,您只需要使用第二个类别字段进行第二次选择绑定,而不是option.nome as option.nome
,您应该使用option as option.nome
:
angular.module('myApp', []);
angular.module('myApp').controller('ctrl', function ($scope) {
$scope.categorias = [
{nome:"Blusa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Camisa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Calça", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Casaco", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Sobretudo", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Saia", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Vestido", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Blazer",tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Gravata", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Camisa", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"leggins", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Cueca", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Sutiâ", tamanhos:["55","60","65","70","75","80","85","90"]},
{nome:"Pijama", tamanhos:["36","38","40","42","44","46","48","50","52","54","56","58","60"]},
{nome:"Chapeu", tamanhos:["46","48","50","52","54"]},
{nome:"Gorro", tamanhos:["46","48","50","52","54"]},
{nome:"Sapato", tamanhos:["18","20","22","24","26","28","30","32","34","36","38","40","42","44","46","48","50","52"]},
{nome:"Oculos", tamanhos:["54","55","56","57"]},
{nome:"Bolsa", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Cachecol", tamanhos:["36","38","40","42","44","46","48","50"]},
{nome:"Cinto", tamanhos:["36","38","40","42","44","46","48","50"]}
];
$scope.log = function (cat) {
console.log(cat);
};
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="ctrl">
<select class="form-control" name="categorias" ng-change="log(produtos.categoria)" ng-model="produtos.categoria" ng-options="option as option.nome for option in categorias | orderBy:'nome' " >
<option value="">- Selecciona uma categoria -</option>
</select>
<div class="form-group">
<label>Tamanho</label>
<select class="form-control" ng-model="produtos.tamanho" ng-options="v for v in produtos.categoria.tamanhos">
<option value="">- Selecciona tamanho -</option>
</select>
</div>
</div>
</div>
&#13;