在ES5代码

时间:2016-05-09 07:05:05

标签: angular angular2-services

如何在ES5代码中使用Angular2提供的HTTP服务? Here是TypeScript示例。

我基本上需要GET和POST请求的示例。

显示的示例here无效。 get似乎未定义。

这是一个不起作用的例子:

    var SearchResultComponent = ng.core.Component({
        selector: "search-result",
        viewProviders: [ng.http.HTTP_PROVIDERS],
        templateUrl: "componentTemplates/SearchResult.html"
    }).Class({
        constructor: [ng.http.HTTP_PROVIDERS, function(http) {
            this.params = params;
            this.http = http;
        }],
        ngOnInit: function(){

            console.log(this.http.get); //undefined
        }
    })

1 个答案:

答案 0 :(得分:0)

SearchResultComponent组件的构造函数中,您需要使用ng.http.Http而不是HTTP提供程序:

var SearchResultComponent = ng.core.Component({
    selector: "search-result",
    viewProviders: [ng.http.HTTP_PROVIDERS],
    templateUrl: "componentTemplates/SearchResult.html"
}).Class({
    constructor: [ng.http.Http, function(http) { // <-----
        this.params = params;
        this.http = http;
    }],
    ngOnInit: function(){

        console.log(this.http.get); //undefined
    }
});

在您的情况下,它不是注入的Http对象...

在提升您的应用程序时,可以在providers属性或viewProviders属性中指定提供程序(就像您一样)。

请参阅此plunkr以了解使用Angular2和ES5的HTTP:https://plnkr.co/edit/oM4gTgW5Q7gpR8Qderjj