TypeScript AngularJS v1:将角度工厂重写为TypeScript
发布时间:2020-12-17 06:58:40 所属栏目:安全 来源:网络整理
导读:我想知道如何将以下工厂重写为TypeScript代码.这是原始代码: app.factory('errorInterceptor',function ($q) { return { responseError: function (response) { console.error("Error: " + response.statusText); return $q.reject(response); } }}); 到目
我想知道如何将以下工厂重写为TypeScript代码.这是原始代码:
app.factory('errorInterceptor',function ($q) { return { responseError: function (response) { console.error("Error: " + response.statusText); return $q.reject(response); } } }); 到目前为止,我已经尝试了以下内容: export class errorInterceptor { constructor(private $q:ng.IQService) { } public responseError(response:any){ console.error("Error: " + response.statusText); return this.$q.reject(response); } public static getFactory(){ return errorInterceptor; } } app.factory('errorInterceptor',errorInterceptor.getFactory()); 但是我收到以下错误: Provider 'errorInterceptor' must return a value from $get factory method. 有任何想法吗? 解决方法
我用这个语法:
export class errorInterceptor { // to support minification static $inject = ["$q"]; constructor(private $q:ng.IQService) { } public responseError(response:any){ console.error("Error: " + response.statusText); return this.$q.reject(response); } //public static getFactory(){ // return errorInterceptor; //} } //app.factory('errorInterceptor',errorInterceptor.getFactory()); app.service('errorInterceptor',errorInterceptor); 延伸: 这是我用来拦截$http调用的片段(所以它对我有效) module MyModule { var app = angular.module("MyModule"); export class HttpErrorAspect { static $inject = ["$q"]; constructor(private $q: ng.IQService) { } public responseError = (rejection: any): any => { // do some magic,e.g. use toaster or alerter // to notify about the issue ... // reject that all return this.$q.reject(rejection); } } app.service("HttpErrorFilter",MyModule.HttpErrorAspect); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |