离子更新$ scope变量

时间:2016-05-06 13:51:40

标签: angularjs ionic-framework

在有点离子之后,我抓住了一个奇怪的行为:

.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
}

})

如果我运行更新功能,在其中我可以看到var的正确更新值。

但如果我在运行更新后运行show函数,则显示的值是最初的' red'。

我缺少什么?

非常感谢您提前

1 个答案:

答案 0 :(得分:0)

我刚刚测试了您的代码(请参阅JSFiddle)并且效果很好。

以下是代码:

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
  }
});

检查并尝试找出差异。也许你错过了什么。

希望它会有所帮助。