我想知道如何将以下工厂重写为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);
延伸:
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); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。