La création d'un tableau avec les ng-modèle lors de la case de sélection
Je suis nouveau sur angularjs et souhaitez créer le modèle de tableau lorsque je clique sur la case ci-dessous mon code..
$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>
Le code ci-dessus la mise à jour de la liste de lecture comme indiqué ci-dessous lorsque je clique sur la case à cocher
{
"http://test/test1.mp3": true,
"http://test/test2.mp32": true,
"http://test/test3.mp3": false
}
Mais je veux créer la ng-modèle dans le format ci-dessous, et la suppression de l'objet lorsque la case n'est pas cochée (par ex. si l'décochez la song3, le song3 objet supprimée à partir du tableau). Pouvez-vous me dire comment écrire cette logique?
Prévu:
[{
name: "song1",
url: "http://test/song1.mp3"
}, {
name: "song2",
url: "http://test/song2.mp3"
}]
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire comme ceci:
Puis, le simple appel de selectedSongs() lorsque la sélection est modifiée:
Voir démo ici
song.id
comme ngmodel pour chaque case:<input type="checkbox" name="{{song.url}}" id="{{song.name}}" ng-model="song.id" ng-change="selectedSongs()">
. J'ai remarqué que le code ci-dessus ne fonctionne que lorsque, ayantng-model="song.checked"
. Mais quand j'ai une dynamique ngmodel"song.id"
, il ne marche pas. Aucune solution de contournement dans ce cas plz?