Angularjs自定义指令ng-click不起作用

Yon*_*xon 10 angularjs

我在angularjs中创建了一个自定义指令:

directives.directive('myTop',function($compile) {
return {
    restrict: 'E',
    templateUrl: 'views/header.html',
}
})
Run Code Online (Sandbox Code Playgroud)

指令的代码:

<div class="my-header">
<button ng-click="alert('x')" class="fa fa-chevron-left"></button>
<h1>SpeakZ</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,ng-click不会触发.

我在互联网上搜索,发现编译/链接是这个问题的解决方案,但我似乎无法达成一个有效的解决方案.

我不是在使用jquery ..

Ash*_*esh 14

您需要link在指令定义中添加一个函数才能使其正常工作.基本上,

var app = angular.module("myApp", [])

app.directive('myTop',function() {
return {
    restrict: 'E',
    template: '<button ng-click="clickFunc()">CLICK</button>',
    link: function (scope) {
        scope.clickFunc = function () {
            alert('Hello, world!');
        };
    }
}
})
Run Code Online (Sandbox Code Playgroud)

和HTML:

<div ng-app="myApp">
    <my-top></my-top>
</div>
Run Code Online (Sandbox Code Playgroud)

这里是小提琴:http://jsfiddle.net/4otpd8ah/