У меня есть проект MVC 5 с использованием TypeScript и угловой. У меня есть три файла TS: для упрощения мы будем называть их Controller1.ts, Controller2.ts и app.ts. Проблема в том, что когда я запускаю программу в первый раз, все, что УЗЛЫ (но не всегда) компилируется просто отлично и в правильном порядке. Однако, как только я что-то меняю и снова сохраняю, чтобы вызвать перекомпиляцию, он меняет порядок классов в выведенном app.js, что приводит к тому, что содержимое app.ts (где создается угловое приложение) запускается до или оба контроллера определены, выбрасывая эту ошибку:TypScript не компилирует классы в последовательном порядке
[ng:areq] Argument 'ProviderScorecardController' is not a function, got undefined
Вот как я определил мой app.ts файл:
/// <reference path="_app.d.ts" />
module mqApp {
'use strict';
if (typeof (angular) != "undefined") {
var modules = [];
angular.module("mqApp", modules)
.controller("Controller1", Controller1)
.controller("Controller2", Controller2);
}
}
оба контроллера идентичны этому для имени класса, за исключением:
/// <reference path="../../_app.d.ts" />
module mqApp {
'use strict';
export class Controller1 {
public static $inject = [
'$scope'
];
private scope: angular.IScope;
constructor($scope: angular.IScope) {
this.scope = $scope;
console.log("Master Controller Instantiated");
}
}
}
Мой _app.d.ts файл, который связан с выше файла TS:
/// <reference path="_references.d.ts" /> [This just contains angular/jquery references]
/// <reference path="code/controllers/Controller2.ts" />
/// <reference path="code/controllers/Controller1.ts" />
/// <reference path="app.ts" />
Изменение порядка ссылок не имеет никакого эффекта. Что я делаю не так? Почему он не будет компилироваться в правильном порядке?
Я бегу Angular 1.6 и TypeScript 1.8.
Это было 100% проблемой. Благодаря! Почесал голову на несколько часов. У предыдущего программиста была такая же настройка в другом проекте, и я скопировал структуру. Не совсем уверен, почему он работал раньше. –