我正在以某种方式构建一个自定义指令
app.directive('confirmation', function() {
return {
restrict: 'A',
scope: {
onConfirm:"&"
},
link: function (scope, element) {
$(element).confirmation(function(){
onConfirm: function(){
scope.onConfirm();
}
});
}
};
});
并像这样使用
<script>
function DoSomethingOnConfirm(){
//Do Something;
}
</script>
<a confirmation on-confirm="DoSomethingOnConfirm()">Delete</a>
我无法访问控制器,因此功能&#34; DoSomethingOnConfirm()&#34; 是一个普通的javascript函数,我怎么能在指令中调用这个函数,我试着直接调用它但它没有工作。
答案 0 :(得分:1)
根据您的问题,我了解您想从您的指令中调用javascript。我相信在这种情况下,你想在用户点击锚标记指令时调用一些函数。
这是代码
<script>
var app = angular.module('app', []);
app.directive('confirmation', function() {
return {
restrict: 'A',
link: function (scope, element, attr) {
element.on('click',function(){
eval(attr.fname);
});
}
};
});
function DoSomethingOnConfirm(){
alert("Are you sure want to delete?");
}
function AddMe(){
alert("Added!!!");
}
</script>
<a confirmation href="javascript:;" fname="DoSomethingOnConfirm()">Delete</a>
<a confirmation href="javascript:;" fname="AddMe()">Add</a>
我没有从范围获取外部函数名称,而是从属性获取它并触发该函数。
我希望这会有所帮助