使用范围函数

虽然在$ 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 函数,有创意!