我試圖在Typescript中創建指令,這將繼續監視掛起的$資源請求。我只需要一個指令作爲一個屬性,它將與index.html中的div一起用於顯示加載進度。以下是我的指令代碼。在打字稿中創建指令以顯示加載進度的角度
module app.common.directives {
interface IProgressbarScope extends ng.IScope {
value: number;
isLoading: any;
showEl: any;
}
class Progressbar implements ng.IDirective {
static $inject = ['$http'];
static instance(): ng.IDirective {
return new Progressbar;
}
//transclude = true;
restrict = 'A';
replace = true;
link = function (scope: IProgressbarScope, elements: ng.IAugmentedJQuery, attrs: ng.IAttributes, $http: ng.IHttpService) {
debugger;
scope.isLoading = function() {
return $http.pendingRequests.length > 0;
};
scope.$watch(scope.isLoading, function (v) {
debugger
if (v) {
elements.addClass("hidediv")
} else {
elements.removeClass("hidediv");
}
});
}
}
angular.module('app')
.directive('progressbar', Progressbar.instance);
}
index.html中
,它是用來如下:
<div progressbar id="myProcess" name="myProcess">
// loading image
</div>
但指令,$ HTTP永遠是不確定的。請注意,我沒有直接使用$ http。我使用$資源服務來製作服務器端API請求。
非常感謝。有效。我不能使用elements.show()屬性而不是添加類嗎?我得到「angular.js:13550 TypeError:elements.show不是一個函數」錯誤,如果我使用elements.show() –
@MicrosoftDeveloper檢查更新的答案,你應該使用'箭頭函數'而不是普通的javascript函數 –