1

私はAngularJSアプリを作成しています。TypeScriptはトランスバータ、SystemJSはモジュール読み込み用です。ルーティングを設定するためにangular-ui-routerモジュールをロードしようとしていますが、失敗しています。TypeScript&SystemJS:transpilated jsに登録されていない角度uiルータモジュール

import * as angular from "angular"; 
import * as router from "angular-ui-router"; 

const app: angular.IModule = angular.module("my.website", ["ui.router"]); 
app.config((stateProvider: router.IStateProvider) => { 
    ... 
}); 

これは、スクリプトがtranspiled方法です::これはスクリプトである

angular.js:38 Uncaught Error: [$injector:modulerr]

:私はこのエラーを取得する

System.register(["angular"], function(exports_1, context_1) { 
... 

あなたが見ることができるように、角度-UI-ルータは登録されていません、従ってモジュールはロードされません。どうして?私は間違って何をしていますか?完全のために

: これはSystemJS configです:

System.config({ 
    defaultJSExtensions: true, 
    map: { 
     "angular": "https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js", 
     "angular-ui-router": "https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js" 
    } 
}); 

これらは、関連する活字体の設定です:

"target": "es5", 
"module": "system" 

私はtypingsを使用して活字体の定義ファイルをロードしています。

gulp-typescriptによって変換が行われます。

手がかりはありますか?

答えて

1

私は、ファイルとモジュールの両方をインポートすることでそれを有効にすることができました。醜いかもしれませんが、これは動作します:

import * as angular from "angular"; 
import "angular-ui-router"; 
import * as router from "angular-ui-router"; 

const app: angular.IModule = angular.module("my.website", ["ui.router"]); 
app.config((stateProvider: router.IStateProvider) => { 
    ... 
}); 
関連する問題