2016-09-06 3 views
2

Ich benutze angular ui.select und ich habe Probleme mit dem ausgewählten Wert an ein Modell zu binden. Ich versuche, eine Variable eines Objekts mit ui.select ng-model="data" festzulegen. Aber aus irgendeinem Grund wird der ausgewählte Wert nicht an das Modell gebunden. Dies ist der Code ich verwende:Angular ui.select nicht binden an ng-Modell

<ui-select ng-model="data" ng-disabled="disabled" theme='select2' style="min-width: 300px;" title="some title"> 
    <ui-select-match placeholder="Select a credit status in the list">[[ $select.selected.variable ]]</ui-select-match> 
    <ui-select-choices repeat="options in options | filter: $select.search"> 
     <p>[[ options.variable ]]</p> 
    </ui-select-choices> 
</ui-select> 

diese Verwendung nicht den gewählten Wert auf das Modell in meinem Fall binden. Ich habe dann $parent.data verwendet, was funktioniert, aber wenn ich mehrere ui-selects benutze, kann nur einer gleichzeitig arbeiten.

Da muss etwas sein, das ich falsch mache, jede Hilfe wird geschätzt.

Antwort

3

Es ist ein häufiges Referenzierungsproblem.

Sie können ein Objekt als ng-Modell

ng-model="data.value" 

oder Sie verwenden können, versuchen, Daten in der Steuerung zu initialisieren.

$scope.data = null; 

oder können Sie die controllerAs Syntax anzuzeigen verwenden, wie in der John Papa's style guide (auf diese Weise Sie die gleiche Frage, die sich wieder vermeiden und wieder) beschrieben.

<div ng-controller="CustomerController as controllerName"> 
    <ui-select ng-model="data" ng-disabled="disabled" theme='select2' style="min-width: 300px;" title="some title"> 
     <ui-select-match placeholder="Select a credit status in the list">[[ $select.selected.variable ]]</ui-select-match> 
     <ui-select-choices repeat="options in options | filter: $select.search"> 
      <p>[[ options.variable ]]</p> 
     </ui-select-choices> 
    </ui-select> 
</div> 
0

Da Sie mehr ui-wählt versuchen, zu verwenden, würde ich empfehlen, die Schaffung und ein Array in einem $ scope Objekt wie folgen gewickelte Initialisierung:

$scope.selections = { selectedData = [] }; 

Dann für das ng-Modell, Sie können die richtige Punktnotation verwenden:

ng-model="selections.selectedData" 

Hoffe, das hilft!

Verwandte Themen