angularjs:如何调用没有作用域的函数?

angularjs:如何调用没有作用域的函数?,angularjs,Angularjs,这是我的模型 <html ng-app="myApp"> <button id="rainBtn" ng-click="makeItRain()">Make it rain ! </button> <div class="tab-pane active" id="lobbyTab" ng-controller="chatController"></div> makeItRain从未被称为: 如何调用mak

这是我的模型

<html ng-app="myApp">
    <button id="rainBtn" ng-click="makeItRain()">Make it rain !  </button>      
    <div class="tab-pane active" id="lobbyTab" ng-controller="chatController"></div>
makeItRain从未被称为:

如何调用makeItRain()函数?

制作控制器

var myApp = angular.module('myApp',[]);

myApp.controller("sky", ["$scope", function($scope) {
    $scope.makeItRain = function() {
       alert("ok");
    }
}]);
设置控制器

<button id="rainBtn" ng-controller="sky" ng-click="makeItRain()">

制作控制器

var myApp = angular.module('myApp',[]);

myApp.controller("sky", ["$scope", function($scope) {
    $scope.makeItRain = function() {
       alert("ok");
    }
}]);
设置控制器

<button id="rainBtn" ng-controller="sky" ng-click="makeItRain()">

无法从全局函数中获取作为角度表达式的引用。在不使用控制器的情况下执行此操作的一种可能方法是使用
$rootScope
并在
.run()
阶段附加函数,但不建议:

myApp.run(function($rootScope) {

  $rootScope.makeItRain = function() {
     alert('Raining!');
  };

});
另一种方法是放弃通过
ng click
指令附加事件处理程序的想法,只需创建一个指令。此解决方案假定您尝试附加的事件处理程序将执行dom操作

myApp.directive('makeItRain', function() {
  return function(scope, elem, attr) {
    elem.on('click', function() {
      makeItRain();
    });
  };
});
然后将其附加到HTML中:

<button id="rainBtn" make-it-rain>Make it rain !  </button>
下雨吧!

无法从全局函数中获取作为角度表达式的引用。在不使用控制器的情况下执行此操作的一种可能方法是使用
$rootScope
并在
.run()
阶段附加函数,但不建议:

myApp.run(function($rootScope) {

  $rootScope.makeItRain = function() {
     alert('Raining!');
  };

});
另一种方法是放弃通过
ng click
指令附加事件处理程序的想法,只需创建一个指令。此解决方案假定您尝试附加的事件处理程序将执行dom操作

myApp.directive('makeItRain', function() {
  return function(scope, elem, attr) {
    elem.on('click', function() {
      makeItRain();
    });
  };
});
然后将其附加到HTML中:

<button id="rainBtn" make-it-rain>Make it rain !  </button>
下雨吧!

将ng click更改为onclick时会发生什么?将ng click更改为onclick时会发生什么?