ng-click 更改 var 的值

ng-click change value of a var

我正在尝试设置 ng-click 以修改控制器内的变量。

我尝试将 ng-click 设置为以 var mar 为目标。

<div class="Button" ng-click="mar = 'test-2';">

在controller.js里面我有这个

eventsApp.controller('EventController', function EventController($scope) {

    //variables
    var mar = 'test-1';

}

所以我希望将 var mar 更改为 'test-2';但是,我的 html 页面一直显示 test-1。是否有动态更改 var mar 的指令或方法?

而不是 想要设置 $scope.mar = 'test-1' 并对其进行操作。我怎样才能做到这一点?谢谢你。

你应该在 $scope 上声明它,你有一个错字

eventsApp.controller('EventController', function EventController($scope) {

    //variables
    $scope.mark = 'test-1';

}

编辑

如果您不想使用 $scope,则必须将 this 分配给控制器内的变量。这是一个小例子。

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

app.controller('EventController', function ($scope) {

    //variables
    var vm = this;
    vm.mar = 'test-1';

});
<div ng-app="app" ng-controller="EventController as ctrl">
  <button class="Button" ng-click="ctrl.mar = 'test-2';">
    Click me!
  </button>
  <p>{{ctrl.mar}}</p>
</div>

如果你想在控制器的函数中使用变量,你只需使用 $scope.marvm.mar.