我尝试实现一个Angular.js指令,该指令将禁用该按钮,直到返回promise。我找到了一些例子。但是当我尝试在指令链接中调用函数时。它总是告诉我newClick()函数是未定义的。有人可以告诉我为什么吗?非常感谢。
angular.module('myApp.directives.newClick', [])
.directive('newClick', [function () {
return {
scope: {
newClick: '&'
},
link: function (scope, iElement, iAttrs) {
iElement.bind('click', function () {
iElement.prop('disabled', true);
scope.newClick().finally(function () {
iElement.prop('disabled', false);
});
});
}
};
}]);
答案 0 :(得分:0)
这应该可以正常工作:
newClick
指令。例如:
<button new-click="clickFunc()">Click me</button>
app.controller('myCtrl', function ($q, $scope, $timeout) {
$scope.clickFunc = function () {
var deferred = $q.defer();
$timeout(function () {
deferred.resolve('Hello, wolrd !');
}, 2000);
return deferred.promise;
};
});
另请参阅此 short demo 。