Jestem nowy angularjs i chcemy stworzyć model tablicę po kliknięciu pole wyboru i poniżej jest mój kod ..Tworzenie tablicy z NG-wybór modelu podczas wyboru
$scope.selectedAlbumSongs = [{
'name': 'song1',
'url': 'http://test/song1.mp3'
}, {
'name': 'song2',
'url': 'http://test/song2.mp3'
}, {
'name': 'song3',
'url': 'http://test/song3.mp3'
}];
$scope.playList = {};
HTML:
<fieldset data-role="controlgroup">
<legend>Select songs to play</legend>
<label ng-repeat="song in selectedAlbumSongs">
<input type="checkbox" name="{{song.url}}" id="{{song.name}}" ng-model="playList[song.url]">
<label for="{{song.name}}">{{song.name}}</label>
</label>
</fieldset>
powyższy kod aktualizacji listy odtwarzania, jak pokazano poniżej po kliknięciu pole
{
"http://test/test1.mp3": true,
"http://test/test2.mp32": true,
"http://test/test3.mp3": false
}
Ale chcę, aby utworzyć nG-tryb lw poniższym formacie i usuń obiekt, gdy pole wyboru nie jest zaznaczone (np. jeśli odznaczemy song3, obiekt song3 zostanie usunięty z tablicy). Czy możesz mi powiedzieć, jak napisać tę logikę?
Oczekiwany:
[{
name: "song1",
url: "http://test/song1.mp3"
}, {
name: "song2",
url: "http://test/song2.mp3"
}]
Witam @ehlers to doskonałe rozwiązanie. Czy możesz mi powiedzieć, jak mogę zrobić to samo, kiedy mam dynamiczne ngModels dla checkboxów wewnątrz ngRepeat? Na przykład w takim przypadku, w którym mam 'song.id' jako ngmodel dla każdego pola wyboru:' '. Zauważyłem, że powyższy kod działa tylko wtedy, gdy 'ng-model =" song.checked "'. Ale kiedy mam dynamiczny ngmodel '" song.id "', to nie działa. Jakiekolwiek obejście w takim przypadku plz? – Neel