使用範圍函式

雖然在$ 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 函式,有創意!