Hallo alle zusammen, ich arbeite mit ArgularJs 1.5. Ich muss Dropdown 2 basierend auf Dropdown 1 auswählen, um es nur anzuzeigen, wenn es existiert (wenn DropDown 1 ausgewählt wurde dropDown 2), sonst zeige ich Dropdown 2 nicht (deaktiviere es) und zeige die Werte von dropDown ausgewählt (entweder von dropDown) 1 oder von DropDown 2) in meine Tabelle.Populate Dropdown 2 basierend auf der Auswahl von Dropdown 1 und wie man iteriert, wenn ich eine Suboption auswähle
In diesem Fall habe ich ein dropDown 1 mit dem Namen city
, die hat 3 subcity
(Drop-Down-2) Ich möchte ihnen zeigen, wenn ich city
wählen und iterieren Werte (Matrix), wenn ich ein Subcity wählte wie subcity02
<div ng-app="app" ng-controller="MainController">
<select ng-model="selectedCity" ng-options="x as (x | cityFilter) for (x, y) in cities">
</select>
<select ng-model="selectedSubCity" ng-options="x as (x | cityFilter) for (x, y) in selectedCity.subCity">
</select>
</div>
<table>
<tr ng-repeat="item in selectedCity"><!--but here I need to iterat the selectedSubCity too when I select DropDown 2-->
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{{ item.price }}</td>
</tr>
</table>
und das ist mein Skript js:
angular.module('app', [])
.filter('cityFilter', function() {
return function(city) {
return city.replace('_', ' ');
}
})
.controller('MainController', ['$scope', function($scope) {
$scope.cities = {
city : [
{id:'c01' , name:'name1', price:15},
{id:'c02' , name:'name2', price:18},
{id:'c03' , name:'name3', price:11},
{subCity01 : [
{id:'sub01' , name:'nameSub1', price:1},
{id:'sub02' , name:'nameSub2', price:8},
{id:'sub03' , name:'nameSub3', price:1},
],
subCity02 : [
{id:'ssub01' , name:'nameSsub1', price:1},
{id:'ssub02' , name:'nameSsub2', price:8},
{id:'ssub03' , name:'nameSsub3', price:4},
],
subCity03 : [
{id:'sssub01' , name:'nameSssub1', price:1},
{id:'sssub02' , name:'nameSssub2', price:2},
{id:'sssub03' , name:'nameSssub3', price:1},
]
},
],
city_02 : [
{id:'cc01' , name:'name11', price:10},
{id:'cc02' , name:'name22', price:14},
{id:'cc03' , name:'name33', price:11},
],
city_03 : [
{id:'ccc01' , name:'name111', price:19},
{id:'ccc02' , name:'name222', price:18},
{id:'ccc03' , name:'name333', price:10},
]
};
das nicht mein Problem beheben ich kann die dropDown 2 sehen, und ich kann seine Werte nicht wiederholen. Jeder könnte mir bitte helfen.
Sie haben keine Eigenschaft oder Variable selectedCityCity in Ihrem JSON .. Nicht sicher Wenn ich etwas vermisse ... Eine Geige wird wirklich hilfreich sein –
Vielleicht ist es nur ich, aber dein JSON ist super verwirrend. Sie haben eine Stadt, bei der es sich um ein Array von Objekten handelt, von denen die ersten drei gleich sind. Die nächsten drei sind Objekte mit Arrays von Objekten. Ich weiß nicht, ob die Umstrukturierung Ihres JSON eine Option ist, aber es könnte sich lohnen, ein wenig zu normalisieren und Ihren Frontend-Code zu vereinfachen. – Lex
@Lex vielleicht hast du Recht, kannst du mir helfen und mit mir über eine Lösung nachdenken, bitte – Abderrahim