AngularJS 指令 link 未调用函数

AngularJS directive link function not called

我一直在编写一个简单的 angular 指令来在用户关闭浏览器时显示警报。

angular.module('myApp').directive("areYouSure", ["$window", function ($window) {
    return {
        restrict: "E",
        link: function() {
            alert("I am called");
            $window.onbeforeunload = function () {
                alert("I am called");
                return "are you sure?";
            };
        }
    };
}]);

<div ng-app="myApp">
<areYouSure></areYouSure>

Link 函数未被调用。我在这里错过了什么

你应该这样调用指令,

<are-you-sure></are-you-sure>

演示

var app = angular.module('myApp',[])
 
app.directive("areYouSure", ["$window", function ($window) {
    return {
        restrict: "E",
        link: function() {
            alert("I am called");
            $window.onbeforeunload = function () {
                alert("I am called");
                return "are you sure?";
            };
        }
    };
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<are-you-sure></are-you-sure>
</body>