Приложение AngularJS MVC4 - комплектация тормозов

0

Я работаю над большим angularJS-приложением, которое находится внутри ASP.NET MVC. Когда я включаю скрипты один за другим, используя скриптовый тег, все работает без каких-либо проблем, но как только я включаю связывание и минимизацию через web.optimization, некоторые контроллеры не решаются и приложения тормозов.

            var scriptBundle = new ScriptBundle("~/bundle/app")
            .Include("~/App/app.js")
            .IncludeDirectory("~/App", "*.js", true);

Вот как я регистрирую пакет. после этого первое, что я вижу в консоли после загрузки приложения,

Error: [$injector:nomod] http://errors.angularjs.org/1.5.5/$injector/nomod?p0=app

и в некоторых контроллерах я получаю следующие ошибки.

Argument 'ControllerName' is not a function, got undefined

это очень странно, потому что, когда я смотрю загруженный скрипт, этот контроллер - это контроллер, который определенно загружен.

при объявлении контроллера angularjs я использую следующий шаблон.

marketConfigWizardCtrl.$inject = ['$scope', 'close'];
angular.module('PcoreManager').controller('marketConfigWizardCtrl', marketConfigWizardCtrl);

function marketConfigWizardCtrl($scope, close){
}
Теги:
asp.net-mvc
asp.net-mvc-4

1 ответ

1

Вы пробовали этот шаблон?

var MyController = function($scope, greeter) {
  // ...
}
MyController.$inject = ['$scope', 'greeter'];
someModule.controller('MyController', MyController);

Согласно документам: https://docs.angularjs.org/guide/di

Чтобы министры могли переименовать параметры функции и все еще иметь возможность вводить правильные сервисы, функция должна быть аннотирована с помощью свойства $ injection. Свойство $ injection - это массив имен служб для инъекции.

  • 0
    Да, я сделал, но это не сработало. причина в том, что во время минимизации и связывания он генерирует скрипт в порядке, в котором контроллеры определены в нижней части ответа, и это реальная проблема. Единственный способ заставить его работать - это перечислить все включения вручную, что на самом деле не очень хороший способ, так как это корпоративное приложение и слишком много скриптов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню