У меня есть довольно простое приложение Angular, которое отлично работает на моей машине разработчика, но после его развертывания выдает это сообщение об ошибке (в консоли браузера):
Uncaught Error: [$injector:unpr] http://errors.angularjs.org/undefined/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20%24http%20%3C-%20%24compile
Никакого другого сообщения, кроме этого. Это происходит при первой загрузке страницы.
Я запускаю ASP.NET MVC5, Angular 1.2RC3 и отправляю в Azure через git.
Гугл ничего интересного не обнаружил.
Какие-либо предложения?
РЕДАКТИРОВАТЬ:
Я использую TypeScript и определяю свои зависимости с помощью $inject
переменной, например:
export class DashboardCtrl {
public static $inject = [
'$scope',
'$location',
'dashboardStorage'
];
constructor(
private $scope: IDashboardScope,
private $location: ng.ILocationService,
private storage: IDashboardStorage) {
}
}
Я считаю, что это должно (или предназначено) обойти проблемы с переименованием локальных переменных, которые возникают во время минификации и могут вызвать эту ошибку.
Тем не менее, это явно имеет какое-то отношение к процессу минификации, поскольку, когда я устанавливаю BundleTable.EnableOptimizations = true
на своей машине разработчика, я могу воспроизвести его.
$inject
общедоступную переменную, которая, как мне кажется, эквивалентна предложенному вами способу (см. Docs.angularjs.org/guide/di ). Я обновлю свой вопрос.