Próbuję wprowadzić nazwę koloru, a jeśli nie ma koloru na liście, powinien on zostać do niej dodany, a element li powinien również uzyskać ten konkretny kolor. Nie rozumiem, co jest nie tak z tymnie można przesuwać obiektu w tablicy za pomocą pętli forEach pod kątem
5
A
Odpowiedz
0
Dodajesz ciąg, a nie obiekt.
Zmień swoją
self.colors.push("label:"+self.colordisp);
do
self.colors.push({label: self.colordisp});
Logika jest też źle, należy sprawdzić, czy kolor jest obecny, a także dodać, jeśli tak nie jest, więc na przykład:
self.checkColor=function(){
var found = false;
angular.forEach(self.colors,function(c){
if(c.label ===self.colordisp){
found = true;
}
});
if (!found) {
self.colors.push({label: self.colordisp});
}
}
wykona zadanie.
2
Masz co najmniej 3 problemy.
Problem # 1. Put ngClick
przycisk wewnątrz pojemnika sterownika kliknij inaczej nie zostaną wykryte:
<div ng-controller="mainCtrl as ctrl">
<ul ng-repeat="color in ctrl.colors">
<li ng-bind="color.label" ng-style="{color: color.label}">
</ul>
<input type="text" ng-model="ctrl.colordisp"> {{ctrl.colordisp}}
<button type="button" ng-click="ctrl.checkColor()">submit</button>
</div>
Issue # 2. Trzeba naciskać obiektu do tablicy, a nie ciąg:
self.colors.push({label: self.colordisp});
Issue # 3. Sprawdzanie istnienia obiektu w tablicy jest obecnie nieprawidłowe. Można by lepiej wykorzystać albo Array.prototype.filter
lub Array.prototype.some
metody:
self.checkColor = function() {
var inArray = self.colors.some(function(obj) {
return obj.label === self.colordisp;
});
if (!inArray) {
self.colors.push({label: self.colordisp});
}
};
Wreszcie nieznaczna: usuwa </input>
- input
elementy nie mają zamykanie tagów (ponieważ nie mają one treść).
Powiązane problemy
- 1. C# foreach w pętli foreach
- 2. PHP foreach pętli tablicy wielowymiarowej
- 3. PHP: Ustaw właściwości obiektu wewnątrz pętli foreach
- 4. Foreach obiektu/tablicy w jQuery
- 5. Wypełnij tablicę za pomocą pętli foreach.
- 6. Usuwanie elementu tablicy w pętli foreach
- 7. HTML5/JavaScript przesuwanie obiektu po ekranie pod kątem
- 8. Limit pętli foreach pętli
- 9. Nie można deserializować obiektu za pomocą właściwości tablicy bajtów za pomocą Json.NET 8.0.1
- 10. DeleteObject() w pętli foreach
- 11. Prawidłowa struktura do sprawdzenia pod kątem błędów za pomocą NSError
- 12. Jak przesuwać obiekt do tablicy za pomocą AngularJS
- 13. Filtrowanie tabulatorów pod kątem
- 14. Wyłączony element tablicy wewnątrz pętli foreach
- 15. Rysowanie płótna HTML5 z kątem pod kątem
- 16. Konwersja "foreach" do pętli "for" i odwrotnie za pomocą ReSharpera?
- 17. Jak pominąć iterację pętli foreach?
- 18. Sprawdź JSONArray pod kątem określonej wartości
- 19. Błąd pętli Foreach
- 20. dla pętli - typ obiektu nie jest brany pod uwagę?
- 21. Jak działa odpytywanie pliku pod kątem zmian?
- 22. Jak przesuwać komputer za pomocą Pythona
- 23. Zmienianie wartości obiektów w pętli foreach?
- 24. Usuwanie XElements w pętli foreach
- 25. PHP - Chwyć pierwszy element za pomocą foreach
- 26. Jak warunkowo przesuwać element w tablicy obserwowalnej?
- 27. Nie można wstawić obiektu do tablicy obiektu json
- 28. jak ograniczyć do trzech pętli foreach pętli
- 29. Czy możesz iterować po każdej możliwej wartości wyliczeniowej za pomocą pętli foreach Qt?
- 30. Jak zapisać wartości z pętli foreach do tablicy?
Jesteś popychanie wartość jako ciąg na tablicę obiektów. więc najpierw przekonwertuj wartość wypychającą na obiekt, a następnie popchnij go do tablicy obiektów. –