ng单击更改变量的值

时间:2019-04-17 19:43:40

标签: angularjs angularjs-directive

我正在尝试设置ng-click来修改控制器内部的var。

我尝试将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'并对其进行操作。我怎样才能做到这一点?谢谢。

1 个答案:

答案 0 :(得分:3)

您应该在$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