基本上,我创建了一个指令,它通过ng-click传递对链接函数的承诺,并检测承诺何时完成,以便我可以附加一个类。
示例:
.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() {});
}
除了控制器功能被调用三次外,它正在做我想做的事情。我真的很想使用require:&#39; ^ ngClick&#39;这里,但由于ngClick指令没有任何控制器,我不能这样做。谁能指出我正确的方向?谢谢!
答案 0 :(得分:1)
在我的指令链接中的event.on('click')函数中添加了event.preventDefault():
element.on('click', function(event) {
event.preventDefault();
d().then(function() {
element.addClass(attrs.myDirective);
});
});