这是我的模特
<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>
这是我的myApp.js
var myApp = angular.module('myApp',[]);
makeItRain = function() {
alert("ok");
}
永远不会调用makeItRain:
如何调用makeItRain()函数?
答案 0 :(得分:3)
制作一个控制器
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()">
答案 1 :(得分:1)
您无法将全局函数的引用作为角度表达式获取。在不使用控制器的情况下执行此操作的一种可能方法是使用$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>