2016-02-19 6 views
5

Ich habe eine ionische Auswahlbox, die eine Bereichsvariable aktualisiert. Ich habe auch eine Scope-Funktion, die eine Funktion ist, die von dieser Scope-Variable abhängig ist (z. B. es testet, ob es sich bei der Variable um einen bestimmten Wert handelt). Das Ergebnis der Funktion scheint nicht mit der ionischen Auswahlbox aktualisiert zu werden, während es in Grundwinkeln zu aktualisieren scheint. Das Einbetten der tatsächlichen Bedingung anstelle der Funktion scheint für ionische zu funktionieren.ionische Auswahl aktualisiert die Funktion nicht abhängig von der Bereichsvariablen

Die ionische Beispiel: http://codepen.io/anon/pen/VeOXzb

Relevante Javascript in Controller:

$scope.testValue = 'value1'; 

$scope.variableFunction1 = function() { 
    return $scope.testValue === 'value2'; 
} 

Relevante html:

Does not change: {{variableFunction1()}}<br/> 
Does change: {{testValue === 'value2'}}<br/> 

<div class="item item-input item-select"> 
    <div class="input-label"> 
    testValue 
    </div> 
    <select ng-model="testValue"> 
    <option value="value1">Val1</option> 
    <option value="value2">Val2</option> 
    <option value="value3">Val3</option> 
    </select> 
</div> 

Das gleiche Winkel Beispiel, wo es funktioniert, wie ich erwarten: http://jsfiddle.net/mm5vg0oa/

Ist das ein Fehler oder bin ich misu etwas in ionischen verstehen?

Antwort

3

Meine Vermutung ist, dass ion-content einen neues Kind Umfang erzeugt, was bedeutet, dass, wenn Sie einen Wert in der Auswahl auswählen, wird eine neue Testvalue Variable auf den ion-content Umfang festgelegt ist (die von dem Steuerungsbereich unterschiedlich ist).

Sie haben zwei Möglichkeiten:

  1. die ng-controller auf ein Element innerhalb des ion-content ein.
  2. Verwenden Sie ein Objekt, um den ausgewählten Wert anstelle einer Zeichenfolge zu halten (siehe Beispiel hier: http://codepen.io/anon/pen/WrBzBq).

Diese Seite erklärt das Problem recht gut: https://github.com/angular/angular.js/wiki/Understanding-Scopes

+0

Ok ich Ihre zweite Option als eine Lösung verwendet wird. Aber ich bin mir nicht sicher, ob ich deine Erklärung vollständig verstehe. Würde die Scope-Variable niemals den Wert ändern, wenn der Ioneninhalt den testValue in seinem eigenen Bereich ändert? –

+0

Zum Beispiel in dieser Geige: http://codepen.io/anon/pen/bEyMwX würde es nicht auf 'Wert1' im Controller-Bereich bleiben? –

+0

Ok, vergiss nicht, deine Erklärung scheint zu 100% korrekt zu sein. Wenn ich den {{testValue}} hinzufüge, wo ich ihn hinzugefügt habe, werde ich natürlich die Variable im Bereich ion-content drucken. In diesem http://codepen.io/anon/pen/QyRrpb drucke ich den Wert im Titel, der den Wert des Controllers und nicht den Inhalt drucken wird. Danke für die Hilfe! –

Verwandte Themen