Reputation: 2761
I would like to pass an object from my view to my controller and I don't know ow to do ...
The object is the checked musics :
<label class="item item-input" id="lbl-name-playlist">
<input ng-model="nom" type="text" placeholder="Nom de la playlist">
</label>
<div class="list">
<ion-list ng-repeat="laMusique in lesMusiques" ng-model="laMusique">
<ion-checkbox class="item" ng-model="isChecked">{{laMusique.titre}} - {{laMusique.artiste}}</ion-checkbox>
</ion-list>
</div>
<button class="button button-full button-balanced" ng-click="createPlaylist(nom, laMusique)">Enregistrer</button>
And my controller :
$scope.createPlaylist = function(nomPlaylist, laMusique){
var nom = nomPlaylist;
//console.log(nom);
var lesMusiquesSelectionnees = laMusique;
console.log(laMusique);
};
console.log(laMusique) show me "undefinied" ...
Upvotes: 1
Views: 78
Reputation: 3473
Maybe you should write a function that will run every time you click a checkbox and will detect if it is true or false and if it is true then it will add laMusique.titre to an array in the scope.
something like this:
label class="item item-input" id="lbl-name-playlist">
<input ng-model="nom" type="text" placeholder="Nom de la playlist">
</label>
<div class="list">
<ion-list ng-repeat="laMusique in lesMusiques">
<ion-checkbox class="item" ng-model="isChecked" ng-click="clickedCheckbox(laMusique, isChecked)">{{laMusique.titre}} - {{laMusique.artiste}}</ion-checkbox>
</ion-list>
</div>
<button class="button button-full button-balanced" ng-click="createPlaylist(nom)">Enregistrer</button>
and in your controller:
$scope.musiqueSelected = [];
$scope.createPlaylist = function(nomPlaylist){
var nom = nomPlaylist;
//console.log(nom);
var lesMusiquesSelectionnees = $scope.musiqueSelected;
console.log($scope.musiqueSelected);
}
$scope.clickedCheckbox = function(Item, isChecked) {
if (isChecked) {
//in Item contains your current selected object
//as per your need use it
var selectedName = Item.titre;
//add to table if selected
$scope.musiqueSelected.push(selectedName);
}
}
Upvotes: 1
Reputation: 680
laMusique
it'a an item of lesMusiques
then you should put:
<button class="button button-full button-balanced" ng-click="createPlaylist(nom, laMusique)">Enregistrer</button>
inside your ng-repeat
to have laMusique
or have a bridge variable.
Upvotes: 0