0

다른 선택기에서 선택한 값에 따라 select를 필터링하려고합니다. 이러한 공통점은 가치가 있습니다. 데이터는 다음과 같습니다필터 ng 옵션 조건 ng-model

나라

{ 
    "paisCodigo": "AR", 
    "paisNombre": "Argentina", 
    "paisVigente": 1 
}, 
{ 
    "paisCodigo": "CL", 
    "paisNombre": "Chile", 
    "paisVigente": 1 
}, 
{ 
    "paisCodigo": "UY", 
    "paisNombre": "Uruguay", 
    "paisVigente": 1 
} 

<select name="selectPais" id="selectPais" ng-model="defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo"> 
     <option value="">Seleccione país</option> 
</select> 

Citys

{ 
    "ciuId": 1, 
    "ciuNombre": "Santiago", 
    "ciuPaisCodigo": "CL", 
    "ciuVigente": 1 
}, 
{ 
    "ciuId": 2, 
    "ciuNombre": "Viña del Mar", 
    "ciuPaisCodigo": "CL", 
    "ciuVigente": 1 
}, 
{ 
    "ciuId": 3, 
    "ciuNombre": "Valparaíso", 
    "ciuPaisCodigo": "CL", 
    "ciuVigente": 1 
}, 
{ 
    "ciuId": 4, 
    "ciuNombre": "Quilpué", 
    "ciuPaisCodigo": "CL", 
    "ciuVigente": 1 
}, 
{ 
    "ciuId": 5, 
    "ciuNombre": "Montevideo", 
    "ciuPaisCodigo": "UY", 
    "ciuVigente": 1 
}, 
{ 
    "ciuId": 6, 
    "ciuNombre": "Buenos Aires", 
    "ciuPaisCodigo": "AR", 
    "ciuVigente": 1 
} 

<select name="selectCiudad" id="selectCiudad" ng-disabled="!defaultPais" ng-model="defaultCiudad" ng-options="ciudad.ciuId as ciudad.ciuNombre for ciudad in ciudades ((paises | filter:{'ciuPaisCodigo' : defaultPais})) track by ciudad.ciuId"> 
     <option value="">Seleccione ciudad</option> 
</select> 

이 작동하지 않습니다. 선택기 도시를 필터링하고 싶습니다. 이러한 예와 공통된 값으로 필터링하려는 경우 국가 코드는 CL, AR, UY입니다. 그러나 나는 얻을 수 없었다. 어떤 비난도 환영합니다. 저는 AngularJS에서 새롭고 이오니아에서도 그렇습니다.

답변

1

비평은 필요하지 않습니다. 당신은 단지 변화를 활용할 필요가 있습니다.

먼저 드롭 다운 메뉴에서 변경하십시오. 두 번째 드롭 다운에서 사용할 배열을 업데이트하는 컨트롤러에서 함수를 만듭니다. 나는 주위에 빠른 작업을 할 것입니다

는 ... 내가 의사 코드를 넣어, 컨트롤러에서 기능

<select name="selectPais" id="selectPais" ng-model="defaultPais" ng-options="pais.paisCodigo as pais.paisNombre for pais in paises track by pais.paisCodigo" ng-change="updateTheOtherDropdown()"> 
     <option value="">Seleccione país</option> 
</select> 

에 파이스를 전달하고 있지 않다 확인할 수 있습니다. 당신은 $ scope.defaultPais

$scope.updateTheOtherDropdown =function() 
{  
여기

당신의 다음 배열을 필터링 $ scope.defaultPais를 사용할 수와 선택한 개체에 액세스 할 수 있어야합니다.

$scope.ciudades = whatever you filtered; 
} 
+0

답변 해 주셔서 감사합니다. 또한 그것을하려고하지만 첫 번째 선택기를 변경하고 ng-change 함수를 호출하면이 경우 "pais"매개 변수가 정의되지 않은 상태가됩니다. – sioesi

+0

흠. select 태그를 닫은 후 드롭 다운에

{{defaultPais | json}}
을 입력하면 어떻게됩니까? – defaultcheckbox

+0

paisCodigo 값 참조 – sioesi