我正在尝试在 TypeScript 中编写全局角度$httpprovider
默认值。这是我的代码,我目前的代码。
export class JSONDateParser {
private httpProvider:any;
public static $inject = [
$httpProvider
];
constructor($httpProvider:any) {
console.log("Json Date Parser Defaults");
this.httpProvider = $httpProvider; // This gives me runtime error
// as this is a referencing angular.
}
}
// here is my reference registering this
app.config(JSONDateParser);
httpProvider
默认值?httpProvider
变量指定为ng.IHttpProvider
类型,则编译器抱怨this.httpProvider.defaults.transformResponse
,transformResponse
未得到解决。我在angular.d.ts (1.2.x)的类型定义中看到它没有定义,但它应该在那里吗?我错过了什么吗?先谢谢你帮助我。
答案 0 :(得分:0)
我们需要一点调整语法:
// define parser
export class JSONDateParser {
constructor(private $httpProvider:any) {
console.log("Json Date Parser Defaults");
}
}
// register it
app.config(['$httpProvider', ($httpProvider) => new JSONDateParser($httpProvider)]);
Angular .config()
不如.service()
或.controller()
灵活。
因此我们必须将所有参数传递到初始化箭头函数内的控制器中。我也使用数组符号,这是方式 - 以后不会受到缩小
另外,如果我们将delcare param视为私人:
constructor(private $httpProvider:any) {
...
编译器将创建一个字段并分配它,以便稍后我们可以this.$httpProvider