我花了一些时间寻找这个,但我没有找到任何东西。
我有以下
HTML文件:
<my-directive name="someName" id="someId" method="somemethod">
sometext
</my-directive>
我的指示:
app.directive('myDirective', function() {
return {
restrict: 'EA',
templateUrl: "example.html",
transclude: true,
link: function(scope, element, attrs)
{
alert(element.name); //Used for testing, Not working
}
};
});
我试图访问指令中的元素参数(name,method,id),但我无法弄清楚如何。
提前致谢。
答案 0 :(得分:0)
使用警报进行测试是非常糟糕的做法。您应该编写一个断言,专门查找所需的属性(在本例中为name)并验证它是否符合您的预期。正如上面的评论者doodeec所说,你将在attrs.name下找到你需要的价值。对元素的引用可能还需要是元素[0],以确保您不会获得未定义或空值。最后,你有你的指令绑定到元素和属性,这似乎是一个不太理想的情况。如果我是你,我会绑定到其中一个,但不是两个。它会在两个地方制作更干净的代码并删除一些意大利面条。
答案 1 :(得分:0)
请查看此Plnkr
您可以在链接功能中使用attrs作为参数。使用它而不是元素。
link: function(scope, element, attrs) {
scope.result = attrs['name'];
}
您也在使用翻译,但尚未在模板中定义“ng-transclude”属性。