1

公式のアップグレードガイドを見ましたが、このようなブログもありますが、わかりません。angular2 のアップグレード モジュールを確認したかったのですが、Angular アップグレード アダプタを使用して ng1 アプリケーションを起動しようとしたときに、最初に失敗しました。

私はそれらのエラーを受け取ります

私の index.html

<html>
<head>
   (...)
   <script src="node_modules/angular/angular.js"></script>

   <script src="node_modules/es6-shim/es6-shim.min.js"></script>
   <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
   <script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
   <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
   <script src="node_modules/systemjs/dist/system.src.js"></script>
   <script src="node_modules/rxjs/bundles/Rx.js"></script>
   <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
</head>
<body>
    <div ng-controller="AppController">
        (...)
    </div>

<script src="app/app.module.js"></script>
<script src="app/app.controller.js"></script>

<script>
    System.import('app/main')
            .then(null, console.error.bind(console));
</script>
</body>
</html>

main.ts (公式アップグレード ガイドより)

import {UpgradeAdapter} from 'angular2/upgrade';

const upgradeAdapter = new UpgradeAdapter();
upgradeAdapter.bootstrap(document.body, ['app'], {strictDi: true});

このようにブートストラップしても問題ありません

angular.bootstrap(document.body, ['app'], {strictDi: true});

ある種のポリフィルのみが欠落している場合、ここに私のpackage.jsonがあります:

{
 (...)
  "dependencies": {
    "angular": "^1.4.9",
    "angular2": "^2.0.0-beta.14",
    "es6-shim": "^0.35.0",
    "jquery": "^2.2.3",
    "reflect-metadata": "^0.1.2",
    "rxjs": "^5.0.0-beta.2",
    "systemjs": "^0.19.26",
    "zone.js": "^0.6.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.9",
    "typings": "^0.7.12"
  }
}

公式の 5 分間のクイックスタートの tsconfig.json とtypings.json を使用しています。

私が読んだところはどこでも、これは些細な作業のようですが、さまざまなアプローチを試しましたが、うまくいきませんでした。それで、私は何が欠けていますか?

編集:

解決策は、ティエリーが以下で述べたようにインポートすることです

    <script src="node_modules/angular2/bundles/upgrade.dev.js"></script

詳細については、同じ問題に焦点を当てた彼の回答 hereを参照してください(実際に読んだことがありますが、重要な部分のコメントを見逃していました)。

4

1 に答える 1

2

upgradejs ファイルも含める必要があります。

 <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
 <script src="node_modules/systemjs/dist/system.src.js"></script>
 <script src="node_modules/rxjs/bundles/Rx.js"></script>
 <script src="node_modules/angular2/bundles/angular2.dev.js"></script>    
 <script src="node_modules/angular2/bundles/upgrade.dev.js"></script>

詳細については、この plunkr を参照してください。

于 2016-04-13T17:20:11.687 に答える