Angularjs 通过ng点击/ng向指令提交承诺
基本上,我创建了一个指令,该指令通过ng click将承诺传递给link函数,并检测承诺何时完成,以便我可以将一个类附加到它 例如:Angularjs 通过ng点击/ng向指令提交承诺,angularjs,Angularjs,基本上,我创建了一个指令,该指令通过ng click将承诺传递给link函数,并检测承诺何时完成,以便我可以将一个类附加到它 例如: .directive('myDirective', function($parse) { return { restrict: 'A', scope: { ng-click: '&' }, link: function(scope) {
.directive('myDirective', function($parse) {
return {
restrict: 'A',
scope: {
ng-click: '&'
},
link: function(scope) {
var d = $parse(scope.ngClick);
element.on('click', function(event) {
d().then(function() {
element.addClass(attrs.myDirective);
});
});
}
};
});
<element ng-click="promise();" my-directive="class"></element>
//controller function
$scope.promise = function() {
return promise().then(function() {});
}
.directive('myDirective',函数($parse){
返回{
限制:“A”,
范围:{
ng单击:“&”
},
链接:功能(范围){
var d=$parse(scope.ngClick);
元素上('click',函数(事件){
d()。然后(函数(){
元素addClass(attrs.myDirective);
});
});
}
};
});
//控制器功能
$scope.promise=函数(){
返回promise().then(函数(){});
}
它正在做我想要的事情,除了控制器函数被调用三次。我确实想在这里使用require:“^ngClick”,但由于ngClick指令没有任何控制器,因此我无法执行此操作。谁能给我指出正确的方向吗?谢谢 将event.preventDefault()添加到我的指令链接中的event.on('click')函数中:
element.on('click', function(event) {
event.preventDefault();
d().then(function() {
element.addClass(attrs.myDirective);
});
});
你好我想在我的控制器上执行业务逻辑,这就是为什么我需要ng click。