Typescript 加载模块通过 AMD 失败
Typescript load module fail via AMD
我用打字稿制作了 AngularJs 应用程序。并使用 requireJs load 'js(compiled ts) file'
我做了一个简单的控制器A
myCtrl.ts
module myApp {
'use strict';
interface myMessage extends ng.IScope {
message: string;
}
export class myCtrl {
constructor($scope: myMessage) {
$scope.message = "hello world";
}
}
}
然后我在 main.ts
中加载 myApp 文件
myApp.ts
import myController = require('./myCtrl');
module myApp{
'use strict';
angular.module('myApp',[]).controller('myCtrl',myCtrl);
}
angular.bootstrap(document,['myAppDo']);
加载成功但 $scope.message 未更改。
'Cannot read property 'myCtrl' of undefined'
当我更改 myApp.ts 时它工作正常
angular.module('myApp', []).controller('myCtrl', ($scope, $http) => {
$scope.message = "hello";
});
angular.bootstrap(document,['myApp']);
我该如何解决?
步骤
- 添加
AMD-dependency
- 导入模块
结果码
///<amd-dependency path="here path to your module"/>
import myController = require('myCtrl');
我解决了。首先,添加 'export' 控制器模块
module myApp
到
export module myApp
然后指定路径
import myCtrl = require('./myCtrl');
angular.module('myApp',[]).controller('myCtrl',myCtrl);
到
import myCtrl = require('./myCtrl');
angular.module('myApp',[]).controller('myCtrl',myCtrl.myApp.myCtrl);
似乎出了点问题,但它有效
我用打字稿制作了 AngularJs 应用程序。并使用 requireJs load 'js(compiled ts) file'
我做了一个简单的控制器A
myCtrl.ts
module myApp {
'use strict';
interface myMessage extends ng.IScope {
message: string;
}
export class myCtrl {
constructor($scope: myMessage) {
$scope.message = "hello world";
}
}
}
然后我在 main.ts
中加载 myApp 文件myApp.ts
import myController = require('./myCtrl');
module myApp{
'use strict';
angular.module('myApp',[]).controller('myCtrl',myCtrl);
}
angular.bootstrap(document,['myAppDo']);
加载成功但 $scope.message 未更改。
'Cannot read property 'myCtrl' of undefined'
当我更改 myApp.ts 时它工作正常
angular.module('myApp', []).controller('myCtrl', ($scope, $http) => {
$scope.message = "hello";
});
angular.bootstrap(document,['myApp']);
我该如何解决?
步骤
- 添加
AMD-dependency
- 导入模块
结果码
///<amd-dependency path="here path to your module"/>
import myController = require('myCtrl');
我解决了。首先,添加 'export' 控制器模块
module myApp
到
export module myApp
然后指定路径
import myCtrl = require('./myCtrl');
angular.module('myApp',[]).controller('myCtrl',myCtrl);
到
import myCtrl = require('./myCtrl');
angular.module('myApp',[]).controller('myCtrl',myCtrl.myApp.myCtrl);
似乎出了点问题,但它有效