在函数中更新$ scope vars

时间:2014-11-07 15:34:59

标签: javascript angularjs

$scope.myVar = cheese;

function please(){
  $scope.myVar = "New Value";
}

google.maps.event.addListener(marker, 'click', please);

我对此感到困惑,我在html中有var“cheese”,我希望当我点击一个google标记时,这会将html更改为“新值”,如同ng-click一样。

如果我在函数中发出警报,它将警告“新值”,但这不会改变函数外的var。

尝试不同的方式

myVar =“新价值” var myVar =“新值”

我怀疑它与全局和局部变量有关,但只是学习角度,所以我有点困惑。

由于

2 个答案:

答案 0 :(得分:2)

你必须使用$apply,因为来电并非来自angular.js内部

function please(){
  $scope.$apply(function() {
    $scope.myVar = "New Value";
  });
}

进一步阅读here

答案 1 :(得分:0)

尝试将please()声明为$ scope函数:

$scope.myVar = cheese;

$scope.please = function () {
  $scope.myVar = "New Value";
}

google.maps.event.addListener(marker, 'click', $scope.please());