2017-02-24 1 views
0

Einstellung ausgewählten Elemente in Winkel md-select mit mehrere OptionRahmen ausgewähltes Element in Winkel md-select mit mehrere Option

<md-select multiple ng-model="Reg.roles" placeholder="Please select roles" required> 
    <md-option ng-repeat="role in roles" value="{{role.value}}" ng-selected="{{ role.value === '<%= data.roles %>' ? 'true' : 'false' }}">{{ role.name }}</md-option> 
</md-select> 

in meinem Controller

$scope.roles = [{ 
     "name": "Account Admin", 
     "value": "account_admin" 
    }, { 
     "name": "Developer", 
     "value": "developer" 
    }, 


    { 
     "name": "Analyst", 
     "value": "analyst" 
    } 
]; 

in Sicht

data.roles enthält Wert:

['account_admin', 'developer'] 

ich das Einzelteil müssen role.value entsprechenden sollte in ausgewählten Zustand sein.

Bild unten Sehen current ui showing

+0

Verwendung ng Optionen einige Male Optionen funktioniert nicht – Jenny

Antwort

0

Schließlich fand ich die Lösung, die ich in meinem Controller schrieb dies:

var current_roles  = '<%=data.roles%>'; // current value from db as array 

$scope.Reg.roles = []; //initialize array 

angular.forEach($scope.roles, function(val1, key1) { 
    if(current_roles.indexOf(val1['value']) !== -1) // check if item in current array 
    { 
     $scope.Reg.roles.push(val1['value']); //setting to select items 
    } 
}); 
0

Ich weiß nicht, wie gültig dies ist, oder wenn dies löst das gleiche Problem, aber eine andere Sache, die Sie tun könnte ist, dass in Ihrem HTML, Rolle anstelle von role.value übergeben. So wäre es etwa so aussehen:

<md-select multiple ng-model="Reg.roles" placeholder="Please select roles" required> 
<md-option ng-repeat="role in roles" value="{{role}}" ng-selected="{{ role.value === '<%= data.roles %>' ? 'true' : 'false' }}">{{ role.name }}</md-option> 

Auf diese Weise können Sie mit dem gesamten Objekt in Ihrem Controller arbeiten und Sie können es zu manipulieren, wie Sie es wünschen.

Verwandte Themen