Sto cercando di spostare gli elementi tra due elenchi di selezione utilizzando il codice riportato di seguito, ma gli elementi non vengono spostati dall'elenco dei client disponibili agli elenchi dei clienti selezionati, quindi qualcuno può controllare il codice qui sotto e fammi sapere cosa mi manca qui? GrazieAngularJS elementi in movimento tra due selezionare l'elenco
<div ng-app>
<div ng-controller="testCtrl">
<label for="aclients">Available Clients</label>
<select size="5" multiple ng-model="available" ng-options="client.id as client.Name for client in clientsList" style="width: 400px"></select>
<input id="moveright" type="button" value="Add Client" ng-click="moveItem(available[0], availableclients,selectedclients)" />
<input id="moverightall" type="button" value="Add All Clients" ng-click="moveAll(availableclients,selectedclients)" />
<input id="move left" type="button" value="Remove Client" ng-click="moveItem(selected[0], selectedclients,availableclients)" />
<input id="moveleftall" type="button" value="Remove All Clients" ng-click="moveAll(availableclients,selectedclients)" />
<label for="sclients">Selected Clients</label>
<select size="5" multiple ng-model="selected" ng-options="client.id as client.Name for client in selectedclients" style="width: 400px"></select>
<div>Selected Clients IDs: {{selectedclients}}</div>
</div>
</div>
Controller:
app.controller('testCtrl',
function testCtrl($scope, clientsService){
$scope.clientsList = clientsService.getClientsList().then(
function(response){
$scope.clientsList = response;
},
function(status){
console.log(status);
}
);
$scope.moveItem = function(item, from, to) {
console.log('Move item Item: '+item+' From:: '+from+' To:: '+to);
//Here from is returned as blank and to as undefined
var idx=from.indexOf(item);
if (idx != -1) {
from.splice(idx, 1);
to.push(item);
}
};
$scope.moveAll = function(from, to) {
console.log('Move all From:: '+from+' To:: '+to);
//Here from is returned as blank and to as undefined
angular.forEach(from, function(item) {
to.push(item);
});
from.length = 0;
};
$scope.availableclients = [];
$scope.selectedclients = [];
});
Grazie per il tuo aiuto, l'esempio che hai fornito funziona bene, ma solo quando passo il set di risultati restituito da $ scope.clientsList a $ scope.availableclients. Se provo a caricare da $ scope.clientsList come facevo inizialmente nella mia domanda, non caricherò alcun dato nell'elenco dei Client disponibili ..... quindi mi sto perdendo qualcosa/facendo qualcosa di sbagliato qui? Grazie in anticipo – MChan
Questo è uno dei problemi: utilizzare coerentemente i disponibili availac o l'elenco dei client in modo coerente, ma non entrambi. –
ooh vedo, grazie mille per il chiarimento, lo apprezzo – MChan