2
我在示例中使用AMD(特別是RequireJS)以及TypeScript來支持外部模塊。下面是其中RequireJS負載(通過數據主屬性)main.ts
:將angular-ui-router和RequireJS domReady作爲TypeScript模塊導入
/// <reference path="../typings/tsd.d.ts" />
requirejs.config({
paths: {
jquery: '../bower_components/jquery/dist/jquery',
angular: '../bower_components/angular/angular',
uiRouter: '../bower_components/angular-ui-router/release/angular-ui-router',
domReady: '../bower_components/requirejs-domready/domReady"
},
shim: {
angular: {
deps: ['jquery'],
exports: 'angular'
},
uiRouter: {
deps: ['angular']
}
},
deps: ['bootstrapper']
});
和這裏的bootstrapper.ts
(不處於工作狀態),該文件引導了應用:
import angular = require('angular') // works fine
import uiRouter = require('uiRouter') // VS Code throws error. External module not found.
import domReady = require('domReady') // Same error as above.
angular.bootstrap(domReady, ['myApp'], {strictDi: true}); // Not working due to domReady.
我不得不訴諸使用以定期RequireJS」 define
方法來獲得路由器和domready中的依賴關係:
define(['angular',
'domReady',
'uiRouter'
], (angular, document, uiRouter) => {
angular.bootstrap(document, ['myApp'], {strictDi: true});
});
任何想法我怎麼能ま將domReady和uiRouter作爲TypeScript外部模塊。
謝謝@basarat。我不知道應該從「uiRouter」模塊輸出什麼。 angular-ui-router位於一個單獨的'ui.router'角度模塊中。所以'出口=?' –
這是使用/// –
是一個好主意是的,但只*如果你不打算實際使用導出的值 – basarat