所以我有一个示例自定义指令代码
angular.module('myApp.directives', []).
directive('exampleDirective', ['version', function(version) {
return {
link:function(scope,elm,attr) {
elm.on('click',function() {
alert("clicked element")
});
}
}
}]);
这是我制作的标记html
<example-directive></example-directive>
<button ng-click="click()">click me</button>
正如您所看到的那样,按钮位于example-directive环境之外,您可以看到定义了ng-click并将click()函数抛出到控制器中。
我的问题是,当我点击angularjs中的ng-click按钮时,如何从自定义指令获取alret(&#34;点击元素&#34;)?
答案 0 :(得分:3)
试试这样:
app.directive('exampleDirective', function() {
return {
restrict: 'E',
link:function(scope,elm,attr) {
scope.clicky = function(){console.log('clicked')};
}
}
});
由于我们没有使用该指令创建新的作用域,因此指令的链接函数中引用的作用域和ng-click
推断的作用域(这是另一个带有角度的指令)将是相同的范围,在这种情况下是$rootScope
。
请注意,您需要为指令添加restrict: 'E'
以处理您编写的内容。它的默认值是by属性(E代表元素名称)所以如果你有<div example-directive />