Erstellen eines Arrays mit ng-Modell bei Auswahl des Kontrollkästchens

Ich bin neu in angularjs und wollen, um das Modell zu erstellen array, wenn ich auf die checkbox und unten ist mein 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>

Dem obigen code die Aktualisierung der playList, wie unten gezeigt, wenn ich auf die checkbox

{
    "http://test/test1.mp3": true,
    "http://test/test2.mp32": true,
    "http://test/test3.mp3": false
}

Aber ich möchte das ng-Modell in der unten-format, und entfernen Sie das Objekt, wenn die checkbox deaktiviert ist (für ex. wenn das deaktivieren der song3, die song3-Objekt aus dem array entfernt). Können Sie mir sagen, wie ich schreiben kann, diese Logik?

Erwartet:

[{
    name: "song1",
    url: "http://test/song1.mp3"
}, {
    name: "song2",
    url: "http://test/song2.mp3"
}]

InformationsquelleAutor der Frage user845392 | 2013-07-30

Schreibe einen Kommentar