このコードは、div
Hello Worldを含むものを表示するはずですが、代わりにエラーが発生しますUncaught TypeError: System.import is not a function
。私はng-book2の入門チュートリアルビデオをフォローしています。これには次のコードが含まれていますindex.html
。
<!DOCTYPE html>
<html>
<head>
<title>Angular 2</title>
<script src="js/traceur-runtime-0.0.90.js"></script>
<script src="js/system-0.18.4.js"></script>
<script src="js/angular2-alpha31.js"></script>
</head>
<body>
<script>System.import('js/app');</script>
<hello-world></hello-world>
</body>
</html>
およびapp.ts
:
/// <reference path="../lib/node_modules/angular2/angular2.d.ts" />
import {
Component,
View,
bootstrap
} from 'angular2/angular2';
// Annotation section
@Component({
selector: 'hello-world'
})
@View({
template: '<div>Hello World</div>'
})
// Component controller
class HelloWorld {
}
bootstrap(HelloWorld);
そして最後に現在のディレクトリ構造:
/ng2
/js
angular2-alpha31.js
app.js
app.js.map
system-0.18.4.js
system-0.18.4.js.map
traceur-runtime-0.0.90.js
index.html
解決策を探し回ると、十分に類似していると思われる唯一の問題は、システムに問題があることを示していますconfig.js
。このチュートリアルを除いて、ビデオはこれが構成のヒントなしで機能することを示しています。これは、ビデオで使用されているローカルHTTPサーバーではなく、リモートサーバーでホストされていることに注意してください。
開発者ウィンドウのスクリーンショット:
上記のディレクトリ構造に示されている各ファイルは、これを書いている時点でGitHubで利用可能な最新のものです。リモートサーバーを使用している場合、または他のものが完全に不足している場合に含める必要のあるデフォルトの構成ファイルはありますか?
ファイルをさらにいじってみると、Angular2がSystemJSのSystem
オブジェクトを独自のものでオーバーライドしていることがわかりました。HTML内でangular2.js
上system.js
に移動した場合、ステートメント
<script>System.import('js/app');</script>
正しいシステムオブジェクトを使用します。
これは発生しないはずですが、当面は問題になります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加