2016-05-06 8 views
0

nach einem bisschen Ionic, ich bin Kratzen meines Kopfes mit einem ungeraden Verhalten:

.controller('MyCtrl', function ($scope) { 

$scope.myvar="red"; 



$scope.update=function() { 

    $scope.myvar="blue"; 
    console.log($scope.myvar) //correctly displays 'blue' 
} 

$scope.showvar=function() { 

    console.log($scope.myvar);  //always display 'red', even if the update function has run 
} 

})

Wenn ich die Update-Funktionen ausführen, es innerhalb von i sehen der korrekte aktualisierte Wert für die var.

Aber wenn ich die Show-Funktion ausführen, nachdem ich das Update durchgeführt habe, ist der angezeigte Wert der erste 'rot'.

Was fehlt mir?

Vielen Dank im Voraus

+0

Sie deklarieren irgendwo einen anderen '$ Scope'? Das wäre die offensichtlichste Erklärung. – Casey

Antwort

0

ich Ihren Code nur getestet (siehe JSFiddle) und es funktioniert gut. Hier

ist der Code:

html:

<div ng-controller="MyCtrl"> 
    <button ng-click="update()"> 
    update 
    </button> 
    <button ng-click="showvar()"> 
    show 
    </button> 
</div> 

js:

var myApp = angular.module('myApp',[]); 

myApp.controller('MyCtrl', function ($scope) { 
    $scope.myvar="red"; 

    $scope.update=function() { 

     $scope.myvar= $scope.myvar != "blue" ? "blue" : "red"; 
     console.log($scope.myvar) //correctly displays 'blue' 
    } 

    $scope.showvar=function() { 

     console.log($scope.myvar);  //always display 'red', even if the update function has run 
    } 
}); 

prüfen diese und versuchen, die Unterschiede zu finden. Vielleicht hast du etwas verpasst.

Ich hoffe, es wird helfen.