Javascript 升级AngularJS工厂(ES5)以用于Angular2(类型脚本)

Javascript 升级AngularJS工厂(ES5)以用于Angular2(类型脚本),javascript,angularjs,typescript,upgrade,angular,Javascript,Angularjs,Typescript,Upgrade,Angular,我正在尝试使用Angular2和TypeScript以及SystemJS作为模块加载器创建应用程序。 我已经准备好了一个工作的AngularJS 1.X,带有相应的框架,用JavaScript(ES5)编写,并使用googleclosure的一些基本功能 现在我想在我的Angular2应用程序中使用该框架的一些功能。 我一直在阅读一些关于Angular2UpgradeAdapter的教程,其中包括: 将现有代码升级到ES2015或TypeScript是没有意义的。 如果我们必须升级到Angula

我正在尝试使用
Angular2
TypeScript
以及
SystemJS
作为模块加载器创建应用程序。
我已经准备好了一个工作的
AngularJS 1.X
,带有相应的框架,用
JavaScript
(ES5)编写,并使用
googleclosure
的一些基本功能
现在我想在我的
Angular2
应用程序中使用该框架的一些功能。
我一直在阅读一些关于
Angular2
UpgradeAdapter
的教程,其中包括:

将现有代码升级到ES2015或TypeScript是没有意义的。
如果我们必须升级到Angular 2,只需逐个组件重写可能更有意义

对我来说,这听起来像是可以在
Angular2(TypeScript)
中使用
AngularJS(ES5)
组件/服务,反之亦然。
但是,我在尝试升级要在我的
Angular2
组件中使用的
AngularJS
工厂时遇到问题

情况:

我有一个文件
webclient.js

它提供了一个名称空间
my.webclient
(使用
goog.provide
)。
goog.scope
-函数中,它定义了一个名为
my.webclient的
angular.module
然后使用
module.factory创建名为
getWebclient
factory

工厂
返回一个
函数
,该函数返回一个
承诺

现在我想在我的
Angular2
组件中使用这个
工厂
getWebclient

我的
Angular2
组件
如下所示:

import {Component, Inject} from "angular2/core";
import {bootstrap} from "angular2/platform/browser";
import adapter from "./upgrade";    // adapter is a new UpgradeAdapter()

adapter.upgradeNg1Provider("getWebclient");

@Component({
    selector: "my-app",
    templateUrl: "path-to-tamplate/app.html"
})
export class AppComponent {

    constructor(@Inject("getWebclient") getWebclient) {
        getWebclient().then(webclient => {
            // If the Promise succeed i'll can log the webclients name property.
            console.log(webclient.name);
        })
    }
}

bootstrap(AppComponent);
但是,这会导致消息出现
DI异常

getWebclient没有提供程序!(AppComponent->getWebclient)

我怎样才能解决这个问题

谢谢

编辑:

我将
bootstrap
行更改为

upgradeAdapter.bootstrap(document.body, ["my.webclient"], {strictDi: true});

现在没有任何错误。但是,现在似乎没有使用
标记将
AppComponent
加载到DOM中。

请尝试此链接,这里有一些有用的详细信息:

首先,您不应该再使用
标记