Javascript 将ng click事件附加到链接内部角度指令
我有一个图表导航指令。在指令中,首先我将获得图表标题列表和服务url,以获取图表所需的数据。一旦我得到图表对象的列表,我就在列表中循环,在link函数中构造链接列表,并将该列表附加到模板中指定的Div。我可以看到指令html,但我附加到链接的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
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(“- ”);
}
var currentItem=parseInt(键)+1;
变量链接=$(''+currentItem+'');
项目。推送(“”+当前项目+“”);
}
}
物品。推送(“
”);
$(“.chart nav”).html(items.join(“”));
}
});
scope.setNavigation=函数(){
警报(“测试”);
};
};
}
};
有人能告诉我在哪里犯了错误吗?有javascript错误吗?你验证过DOM使用ng click元素正确呈现了吗?还有,它在后续的摘要周期中工作吗?我没有看到任何JS错误,click事件被附加到DOM上。但是没有找到它。看起来像是
$(“.chart nav”)
未在DOM中使用$compile