2016-07-22 3 views
0

In meinem Code habe ich einige Benutzer aufgezeichnet. Dort gibt es eine Spalte, um die produced by Spalte zu ändern. Mein ng-change funktioniert gut. Nach der Seitenaktualisierung wurde das Dropdown nicht ausgefüllt, was ich letztes Mal geändert habe. Bitte überprüfen Sie meinen Code -Wie wählt man das dynamische Drop-Down-Menü?

Identität

<select name="repeatSelect" id="repeatSelect" ng-model="model_produced_by" style="width: 62px;" ng-change="change_produced_by(model_produced_by, order.Order.id)"> 
    <option value="">Select Produced By</option> 
    <option ng-repeat="option in produced_by.availableOptions" value="{{option.id}}" ng-selected="option.id == order.Order.assigned_to">{{option.name}}</option> 
</select> 

Ausgang -

<select ng-change="change_produced_by(model_produced_by, order.Order.id)" style="width: 62px;" ng-model="model_produced_by" id="repeatSelect" name="repeatSelect" class="ng-pristine ng-valid ng-empty ng-touched"> 
    <option value="">Select Produced By</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="1" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Outsourced</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="2" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">In-House</option> 
    <option ng-selected="option.id == order.Order.assigned_to" value="3" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Local Store/Printer</option> 
</select> 

Ich möchte Wert auszuwählen, die mit option.id == order.Order.assigned_to Aber mein Code gleich funktioniert nicht. Auch ich habe ng-init im select Tag verwendet. Die letzte Option wird in jedem Dropdown angezeigt. Bitte überprüfen Sie und sagen Sie mir, wo der Fehler liegt.

enter image description here

+0

Im Select-Tag verwenden Sie ng-model, wo der ausgewählte Wert gespeichert werden soll und in jede der von Ihnen platzierten Option Bedingung: ng-selected = "option.id == order.order.assigned_to". Es scheint wie ein Missverhältnis. –

Antwort

1

sollten Sie verwenden einfach ngOptions und ngModel:

<select name="repeatSelect" id="repeatSelect" style="width: 62px;" 
    ng-model="order.Order.assigned_to"   
    ng-change="change_produced_by(model_produced_by, order.Order.id)" 
    ng-options="option.id as option.name for option in produced_by.availableOptions"> 
    <option value="">Select Produced By</option> 
</select> 
+0

Arbeiten gut. Danke :) – Chinmay235

-1

Ich weiß nicht, Winkel js aber ich verstehe Ihr Problem. Wenn Sie diese Operation irgendwie durchführen können, werden Sie Ihr Problem los. Sie müssen folgende Drop-Down-HTML erzeugen, um ausgewählte Option 2:

<select ng-change="change_produced_by(model_produced_by, order.Order.id)" style="width: 62px;" ng-model="model_produced_by" id="repeatSelect" name="repeatSelect" class="ng-pristine ng-valid ng-empty ng-touched"> 
    <option value="">Select Produced By</option> 
    <option value="1" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Outsourced</option> 
    <option ng-selected="true" value="2" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">In-House</option> 
    <option value="3" ng-repeat="option in produced_by.availableOptions" class="ng-binding ng-scope">Local Store/Printer</option> 
</select> 

Wenn Sie HTML zur Laufzeit wie pro Ihre Bedingung erzeugen können Sie dies tun können .... Hier Beispiel so, wie ich Code schreibe vielleicht defferent in eckig:

<select name="repeatSelect" id="repeatSelect" ng-model="model_produced_by" style="width: 62px;" ng-change="change_produced_by(model_produced_by, order.Order.id)"> 
    <option value="">Select Produced By</option> 
    <option ng-repeat="option in produced_by.availableOptions" value="{{option.id}}" (option.id == order.Order.assigned_to) ? ng-selected="true":"">{{option.name}}</option> 
</select> 

Hoffe das lösen Sie Ihr Problem.

+0

Der Code funktioniert nicht. :( – Chinmay235

0

Für den korrekten Betrieb wählen, müssen Sie die Eigenschaft ng-modal angeben, in diesem Beispiel aussehen:

<select id="inptAdmin" name="inptAdmin" class="form-control" 
    ng-model="res.adminUser.id" ng-options="user.id as user.name + ' - ' + user.email for user in listUser" required="required"> 
</select> 

In meinem Controller Ich besitze eine Eigenschaft listUser, die eine Liste von Benutzerobjekten hat, aber in den ng-Optionen gebe ich an, dass die ID dieser Objekte als Wert verwendet werden soll, und im ng-modal geben Sie an, wo der Wert gespeichert wird wählen. Wenn in diesem Beispiel 'res.adminUser.id' aus gefüllt ist, wird automatisch der entsprechende Wert in der Auswahl ausgewählt.

Ich hoffe, dass ich geholfen habe.

Verwandte Themen