Javascript 将ng click事件附加到链接内部角度指令

Javascript 将ng click事件附加到链接内部角度指令,javascript,jquery,angularjs,angularjs-directive,angularjs-scope,Javascript,Jquery,Angularjs,Angularjs Directive,Angularjs Scope,我有一个图表导航指令。在指令中,首先我将获得图表标题列表和服务url,以获取图表所需的数据。一旦我得到图表对象的列表,我就在列表中循环,在link函数中构造链接列表,并将该列表附加到模板中指定的Div。我可以看到指令html,但我附加到链接的ng click事件不起作用。这是我的指令代码 var ChartNavigationDirective = { 'ChartNavigation': function ($rootScope,$compile, RelatedItems) { return

我有一个图表导航指令。在指令中,首先我将获得图表标题列表和服务url,以获取图表所需的数据。一旦我得到图表对象的列表,我就在列表中循环,在link函数中构造链接列表,并将该列表附加到模板中指定的Div。我可以看到指令html,但我附加到链接的ng click事件不起作用。这是我的指令代码

var ChartNavigationDirective = { 'ChartNavigation': function ($rootScope,$compile, RelatedItems) {
return {
    restrict: 'EA',
    require: '?ngModel',
    replace: false,
    template:  '<div class="chart-nav relatelink_hidden">' +
             ' </div>',
    scope: {
        options: '=ChartNavigation'
    },
    link: function (scope, element, attrs) {
        var source = scope.options.Source;
        scope.parseInt = parseInt;
        RelatedItems.getItems(scope.options.Source, scope.options.Type).then(function (d) {
            scope.links = d.Items;
            var myitems = scope.links;
            if (myitems.length > 0) {
                $(".chart-nav").removeClass("relatelink_hidden");
                var items = [];
                items.push('<ul>');
                for (var key in myitems) {
                    if (myitems.hasOwnProperty(key)) {
                        if (key == 0)
                            items.push('<li id="' + key + '" class="item_' + key + ' nav_selected">');
                        else {
                            items.push('<li id="' + key + '" class="item_' + key + '">');
                        }
                        var currentItem = parseInt(key) + 1;
                        var link = $('<a>' + currentItem + '</a>');
                        items.push('<a ng-click="setNavigation()">' + currentItem + '</a>');
                    }
                }
                items.push('</ul>');
                $(".chart-nav").html(items.join(''));                    
            }

        });
        scope.setNavigation = function () {
            alert("test");
        };
};
}
};
var ChartNavigationDirective={'ChartNavigation':函数($rootScope,$compile,RelatedItems){
返回{
限制:“EA”,
要求:“?ngModel”,
替换:false,
模板:“”+
' ',
范围:{
选项:'=图表导航'
},
链接:函数(范围、元素、属性){
var source=scope.options.source;
scope.parseInt=parseInt;
RelatedItems.getItems(scope.options.Source,scope.options.Type)。然后(函数(d){
scope.links=d.项目;
var myitems=scope.links;
如果(myitems.length>0){
$(“.chart nav”).removeClass(“relatelink_hidden”);
var项目=[];
推送(“
    ”); for(myitems中的var键){ if(myitems.hasOwnProperty(键)){ 如果(键==0) items.push(“
  • ”); 否则{ items.push(“
  • ”); } var currentItem=parseInt(键)+1; 变量链接=$(''+currentItem+''); 项目。推送(“”+当前项目+“”); } } 物品。推送(“
”); $(“.chart nav”).html(items.join(“”)); } }); scope.setNavigation=函数(){ 警报(“测试”); }; }; } };

有人能告诉我在哪里犯了错误吗?

有javascript错误吗?你验证过DOM使用ng click元素正确呈现了吗?还有,它在后续的摘要周期中工作吗?我没有看到任何JS错误,click事件被附加到DOM上。但是没有找到它。看起来像是
$(“.chart nav”)
未在DOM中使用
$compile