Ich bin neu in eckigen js Programmierung so bitte entschuldigen Sie mich, wenn meine Frage naiv ist. Ich bevölke eine Liste von Checkboxen abhängig von Werten innerhalb eines JSON-Objekts. Ich benutze ng-repeat, um durch die Liste der Schlüssel zu durchlaufen & Werte erhalten & das Kontrollkästchen anzeigen. Wenn jedes Kontrollkästchen angeklickt wird, führe ich einen Serveranruf durch, um relevante Daten zu erhalten. Die Daten, die ich erhalte, sollten in einer Dropdown-Liste nur dann ausgefüllt werden, wenn auf & geklickt wird. Das Dropdown-Menü sollte bei Nicht-Klick verschwinden. Ich möchte die ausgewählte Dropdown-Option erfassen, nachdem der Benutzer sie ausgewählt hat. Ich bin fest, wie man es bekommt.wie Dropdown-Box nach der Auswahl eines der Checkbox in Schleife eckig js gezeigt
Mein Code als Referenz:
HTML:
<div class="container" ng-controller="OptionsController" >
<div ng-repeat="(key, value) in options" ng-if="value === 'text'">
<!-- {{key}} : {{value}}-->
<input type="checkbox" ng-click="getDistinct(key)"/>
<label>{{key}}
</label>
<div class="animate-show">
<select id="selector" ng-model="QueryFormData.Graph.selected">
<option ng-repeat="name in QueryFormData.Graph.options"
ng-value="name">{{name}}</option>
</select>
</div>
</div>
</div>
Controller-Code:
myApp.controller('OptionsController', ['$scope', '$http', '$location', 'datashare',
function($scope, $http, $location, datashare) {
//$scope.options = datashare.jsonData;
$scope.options = {
"_id": "571a0fcfaa6d92581ec99b2e",
"Name": "text",
"isstring": "text",
"value1": "number",
"value": "number",
"status": "text",
"ItantaTime": "time"
};
$scope.keyArr = [];
$scope.QueryFormData = {
Graph: {
options: [
'Line Graph'
],
selected: 'Line Graph'
},
displayValue: ''
};
$scope.getDistinct = function(key) {
if ($scope.keyArr.indexOf(key) == -1) {
$scope.keyArr.push(key);
var ServerAddr = "http://localhost:2000/getDistinct/" + key;
console.log("Server Addr :" + ServerAddr);
$http.get(ServerAddr, {
headers: {
'Content-Type': 'application/json'
}
})
.success(function(result) {
console.log(result);
})
.error(function(data, status) {
console.log(data)
});
}
console.log("changed : " + key);
};
}
]);
Mit aktuellen Code, den ich auf einmal alle Dropdown-Listen sehe. Ich möchte die Dropdown-Menüs als Umschaltfunktion für die Kontrollkästchen anzeigen.
Jede Hilfe wird sehr geschätzt.
Vielen Dank für die Antwort. Ich habe die Filteroption anstelle von ng-if benutzt. Das JSON-Objekt, das ich als Teil des GetDistinct-Aufrufs vom Server erhalte, hat das Format {"Wert": ['2', '3', '4', '5', '6', '7', '8' ]}. Ich möchte ein Dropdown anzeigen, das aus den oben erhaltenen Werten besteht. Ich bin immer noch verwirrt darüber, wie es dazu führen würde, dass ich das Drop-Down im Toggle-Modus zeige. Mein Problem ist, dass ich die Dropdown-Liste für das ausgewählte Kontrollkästchen nicht anzeigen kann. – user1439609
Der Link [ngRepeat] (https://docs.angularjs.org/api/ng/directive/ngRepeat) sagt, dass ** Die eingebauten Filter orderBy und filter funktionieren nicht mit Objekten und werden bei Verwendung mit einem geworfen . ** – user1439609