使用範圍函式
雖然在$ rootscope 中宣告一個函式有它的優點,但我們也可以宣告一個$ scope 函式,它由$ scope 服務注入的程式碼的任何部分。例如,控制器。
調節器
myApp.controller('myController', ['$scope', function($scope){
$scope.myFunction = function () {
alert("You are in myFunction!");
};
}]);
現在你可以使用以下命令從控制器呼叫你的函式:
$scope.myfunction();
或者通過該特定控制器下的 HTML:
<div ng-controller="myController">
<button ng-click="myFunction()"> Click me! </button>
</div>
指示
一個角指令是,你可以用你的範圍另一個地方:
myApp.directive('triggerFunction', function() {
return {
scope: {
triggerFunction: '&'
},
link: function(scope, element) {
element.bind('mouseover', function() {
scope.triggerFunction();
});
}
};
});
並在同一控制器下的 HTML 程式碼中:
<div ng-controller="myController">
<button trigger-function="myFunction()"> Hover over me! </button>
</div>
當然,你可以使用 ngMouseover 來做同樣的事情,但是指令的特殊之處在於你可以按照你想要的方式自定義它們。現在你知道如何使用你的$ scope 函式,有創意!