打字稿写入角度$ httpprovider默认值

时间:2015-05-14 07:25:47

标签: angularjs typescript

我正在尝试在 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);
  1. 如何在Typescript中编写angularjs httpProvider默认值?
  2. 另外,我如何在Typescript中为构造函数应用lambda语法。
  3. 如果我将httpProvider变量指定为ng.IHttpProvider类型,则编译器抱怨this.httpProvider.defaults.transformResponsetransformResponse未得到解决。我在angular.d.ts (1.2.x)的类型定义中看到它没有定义,但它应该在那里吗?我错过了什么吗?
  4. 先谢谢你帮助我。

1 个答案:

答案 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