0

我遇到了 $rootScope 的问题。我正在更改“按钮”单击事件中的值,但指令中没有更改。

HTML页面显示“TEST”开始,在按钮单击时,我希望更改为“CLICKED”。错误是什么?在我的代码中,请帮忙。

<html>
<script src="jquery.min.js"></script>
<script src="angular.js"></script>
<script>
       "use strict";
       var app = angular.module('myApp', []);

       app.run(function ($rootScope) {
                $rootScope.name = 'TEST';
       });

       app.controller('btnCtrl', function($scope, $rootScope){

       $("#Btn").click( function($rootScope) {
            alert('Btn clicked');
            $rootScope.name = 'CLICKED';
       });

     });

</script>
<body>
    <div ng-app="myApp">

        <b> {{name}} </b>  
        <p> Clcik button to change above text to "CLICKED", <u>not working why?</u></p> 

        <div ng-controller="btnCtrl" > 
            <input type="button" value="Button" id="Btn" />   
        </div>    
    </div>
</body>
</html>
4

1 回答 1

0

使用ng-click而不是绑定click事件 jquery 方式。应该是<input type="button" value="Button" id="Btn" ng-click="assignNewName()" />。在您的控制器内部:

app.controller('myCtrl', function($scope, $rootScope) {
  $scope.assignNewName = function() {
    $rootScope.name = 'Foo';
  }
});
于 2014-08-25T10:53:50.270 回答