Назначить функцию из $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