javascript添加事件监听器不适用于angularjs$scope

javascript add event listener not working with angularjs $scope

本文关键字:angularjs scope 适用于 不适用 添加 事件 监听器 javascript      更新时间:2023-09-26

这是我的html文件:

<section data-ng-controller="myCtrl">
    {{name}}
    <button id="btn1">Button1</button>
</section>

这是我的控制器:

angular.module('users').controller('myCtrl', ['$scope',
    function($scope) {
        $scope.name="HELLO";
        document.getElementById("btn1").addEventListener("click",function(){
            $scope.name="changed";
        });
}]);

html文件显示HELLO,但单击按钮后不会变为"changed"。我刚接触angular,有人能帮我吗?

这是因为常规事件侦听器不会在Angular中触发$digest循环,这将更新视图。您应该使用ngClick并定义$scope函数:

$scope.clickHandler = function() { $scope.name = "changed"; };

以及HTML:

<button ng-click="clickHandler()">Button1</button>