Javascript 如何让AngularJS指令更新由另一个指令生成的锚点

Javascript 如何让AngularJS指令更新由另一个指令生成的锚点,javascript,angularjs,Javascript,Angularjs,我是个新手,不确定我的问题措辞是否恰当。问题就在这里。我从数据库中收到一块包含所有标记的html <DOCTYPE> <html> <head>...</head> <body>...</body> </html> 我试图完成的是检查返回的HTML中的每个锚,并在新窗口中打开锚。HTML列呈现完美,没有任何问题,但是,锚仍然在同一选项卡中打开,而不是在新选项卡中打开。我做错了什么?先谢谢

我是个新手,不确定我的问题措辞是否恰当。问题就在这里。我从数据库中收到一块包含所有标记的html

<DOCTYPE>
 <html>
     <head>...</head>
     <body>...</body>
 </html>
我试图完成的是检查返回的HTML中的每个锚,并在新窗口中打开锚。HTML列呈现完美,没有任何问题,但是,锚仍然在同一选项卡中打开,而不是在新选项卡中打开。我做错了什么?先谢谢你


更新1:@dfsq,这是我更新的测试的链接[我尝试在这里使用ng bind html,但它引发了错误。但它在我的代码中对我有效。

为了定义指令
目标空白
,你需要遵循JS中的camelCase符号:

myDirectives.directive('targetBlank', function () {
    return {
        restrict: 'A',
        replace: false,
        compile: function (element) {
            var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
            elems.attr("target", "_blank");
        }
    };
});

问题是,第二个指令在页面加载后立即启动,没有给kendo时间来呈现html。这纯粹是一个时间问题。添加$timeout依赖项解决了这个问题。

是否尝试更改所有锚定标记?如果是这样,您应该为
a
编写一个指令。@MatthewGreen,我正在尝试要仅更改span中仍然不起作用的所有a标记,它们仍然在同一个tabWell指令中打开,此修复没有问题(演示:)因此,您可能还有其他问题。您能做一个演示吗?问题似乎出在剑道UI网格呈现指令模板,然后使用锚指令的某个地方。当我尝试查看元素时。find('a').attr(“href”)它被认为是未定义的。有没有办法在第一个指令在剑道网格中呈现后加载anchor指令?可能是的。你能设置一个简单的演示吗,它只是简单得多的实验。老实说,我不知道怎么做。从第一个指令生成的数据来自数据库。我不知道如何模仿它.
myDirectives.directive('target-blank', function () {
    return {
        restrict: 'A',
        replace: false,
        compile: function (element) {
            var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
            elems.attr("target", "_blank");
        }
    };
});
myDirectives.directive('targetBlank', function () {
    return {
        restrict: 'A',
        replace: false,
        compile: function (element) {
            var elems = (element.prop("tagName") === 'A') ? element : element.find('a');
            elems.attr("target", "_blank");
        }
    };
});