Reputation: 340
I'm trying to use AngularJS 1.4.3 with TypeScript 1.5
My typescript file is
/// <reference path="typings/angular/angular" />
/// <reference path="controllers/LoginController" />
import * as angular from 'angular';
import { LoginController } from './controllers/LoginController';
if (angular)
console.log('angular is not null!');
else
console.log('angular is null!');
console.log('version:' + angular.version);
var myApp = angular.module('app', [])
.controller('LoginController', LoginController);
which is converted to the following JS
/// <reference path="typings/angular/angular" />
/// <reference path="controllers/LoginController" />
define(["require", "exports", 'angular', './controllers/LoginController'], function (require, exports, angular, LoginController_1) {
if (angular)
console.log('angular is not null!');
else
console.log('angular is null!');
console.log('version:' + angular.version);
var myApp = angular.module('app', [])
.controller('LoginController', LoginController_1.LoginController);
});
//# sourceMappingURL=test.js.map
However when it is run in the browser "angular" is undefined. If I type "angular" into the console it finds angular, and requirejs is loading angular correctly (as seen in the network trace and the fact angular works from the console).
I tried using
import angular from 'angular';
But I visual studio 2015 gives me the error
Module 'angular' has no default export
I'm nearly certain the error is with the import statement, just can't seem to get it to work.
Upvotes: 1
Views: 321
Reputation: 5407
Create a require config file and add a shim for angular and exports it.
require.config({
baseUrl: "somepath/scripts",
paths: {
"angular": "libraries/angular",
"angular-resource": "libraries/angular-resource",
},
shim: {
"angular": {
exports: "angular"
},
"angular-resource": {
deps: ["angular"]
},
}
});
Upvotes: 2