$rootScope не меняет содержимое.... В чем моя ошибка?

У меня проблема с $rootScope. Я изменяю значение в событии нажатия кнопки, но оно НЕ изменяется в директиве.

HTML-страница показывает "ТЕСТ" для начала, при нажатии кнопки я ожидаю изменить на "НАЖМИТ". В чем ошибка? в моем коде, пожалуйста, помогите.

<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>

1 ответ

Использование ng-click вместо того, чтобы связать click событие jquery-way. Так должно быть <input type="button" value="Button" id="Btn" ng-click="assignNewName()" />, И внутри вашего контроллера:

app.controller('myCtrl', function($scope, $rootScope) {
  $scope.assignNewName = function() {
    $rootScope.name = 'Foo';
  }
});
Другие вопросы по тегам