Назначить функцию из $rootScope для события click с AngularJS

Как я могу запустить эту функцию с $rootScope?
скрипка

  <div ng-app="myApp" ng-controller="parentCtrl">
      {{test}}
      <div ng-controller="myCtrl1">
          <div ng-controller="myCtrl2">
              <a href="#" ng-click="value()">show me</a>     
          </div>
      </div>   
    </div>

Вот мои контроллеры:

angular.module('myApp', []).controller('parentCtrl', function($scope, $rootScope) {
    $rootScope.test = function() {
        alert("asdasd");
    }
});

angular.module('myApp').controller('myCtrl2', function($scope, $rootScope) {
    $scope.value = $rootScope.test();
});

Оповещение отображается при обновлении страницы, но я хочу показать его после нажатия кнопки, когда ng-click

2 ответа

Решение

Если вы хотите назначить test функция к $scope.valueПросто удалите () в следующей строке:

$scope.value = $rootScope.test;

Посмотри на скрипку.

Вам нужно установить $scope.value в $rootScope.test

Установка его в $rootScope.test() вызывает функцию и фактически не устанавливает значение ссылки на функцию в $ rootScope.

$scope.value = $rootScope.test

Обновленная скрипка

Другие вопросы по тегам