Czy ktoś może mi pomóc, aby mój przykład działania polegał na rezygnacji z kraju/stanu?Angularjs wyzwalać zależność od państwa członkowskiego
Celowo utworzyłem JSON w ten sposób, ponieważ chcę, aby zależność była ogólna, więc byłbym w stanie zastosować ją w dowolnym menu rozwijanym podczas używania tylko danych meta, a nie HTML.
Oto a link aby zobaczyć przykład kodu w JSFidlle
HTML
Country:<select data-ng-model="Countries" data-ng-options="country.id as country.name for country in Countries.items">
<option value="">Please select a country</option>
</select>
State: <select data-ng-model="currentItem" data-ng-options="item.id as item.name for item in currentStates.items">
<option value="">Please select a state</option>
</select>
kod JavaScript:
function Controller($scope) {
var Countries = {
"id": "field10",
"items": [{
"id": "10",
"StateGroupID":"0",
"name": "United State"
},
{
"id": "2",
"StateGroupID":"1",
"name": "Canada"
}]
};
var States =
{ "id": "field20",
"StateGroups": [{
"items": [{ "id": "1",
"name": "Alabama"
},
{
"id": "2",
"name": "Alaska"
},
{ "id": "3",
"name": "Arizona"
},
{ "id": "4",
"name": "California"
}]},
[{ "id": "201",
"name": "Alberta"
},
{
"id": "202",
"name": "British Columbia"
},
{
"id": "303",
"name": "Manitoba"
},
{
"id": "304",
"name": "Ontario"
}]]
};
$scope.Countries = Countries;
$scope.currentStates = States.StateGroups[0];
$scope.$watch('currentStates', function(value, oldValue){
//alert(value);
//alert(JSON.stringify(value));
//$scope.currentStates = (value == "10") ? States.StateGroups[0] : States.StateGroups[1];
});
}
swoją odpowiedź był dla mnie bardzo przydatny. Skierowałeś mnie do błędu w strukturze JSON, a także HTML, który pomógł mi lepiej zrozumieć moje błędy i jak je naprawić, a ostatecznie sprawić, by mój przykład zadziałał. Twój przykład jest lepszy niż mój, ale ** dlaczego użyłeś [ng-repeat] zamiast [ng-options] **? – Scription
Cieszę się, że ci pomogło. Pierwsze powtórzone powtórzenie, którego użyłem, to głównie wymuszenie atrybutu "value" dla każdego elementu. Ułatwia to modyfikowanie podczas testowania, ale możesz sprawić, by działał z opcjami ng. Po drugie, byłem leniwy i skopiowałem/wkleiłem dużą część 3 powtórzeń ng-powtórzeń;). Krótko mówiąc, możesz użyć opcji ng, jeśli chcesz, zadziała to również :) – DotDotDot