0

Я пытаюсь модулировать свой код и перемещать контроллер в отдельный файл, который использует тот же модуль. Но, он не загружается, я убедился, что порядок загрузки верен.angular.module, вызванный из отдельных файлов, не найден Контроллер

// app.js 
angular.module("app", []); 

// LoginCtrl.js 
angular.module("app", []).controller("LoginCtrl", function() 
{ 
    //doSomeThing 
}); 

Если я использую var app = angular.module в первом файле и использую ту же переменную в других файлах, она работает.

// app.js 
var app = angular.module("app", []); 

// LoginCtrl.js 
app.controller("LoginCtrl", function() 
{ 
    //doSomeThing 
}); 

Если переместить весь код в одном файле и использовать angular.module отдельно для каждого компонента, он работает.

// app.js 
angular.module("app", []); 

angular.module("app", []).controller("LoginCtrl", function() 
{ 
    //doSomeThing 
}); 

Я что-то не хватает?

ответ

5

Для создания модуля в AngularJS:
angular.module('app', []);

Чтобы получить модуль в AngularJS:
angular.module('app');

Вы используете ту же подпись в своем коде для создания и получения модуля, вы не должны добавлять массив инъекций в качестве второй аргумент функции модуля при получении модуля в другом файле.

+0

Вы абсолютно правы. Я сделал его изменения и проверил, отлично работает. – JVM

-1

После modulerizing ваш код, запишите это в файле LoginCtrl.js:

var app = angular.module("app"); 
app.controller("LoginCtrl", function() { 
... 
+1

Здесь я предпочитаю использовать шаблон с цепочкой, вместо создания новой переменной – Gianmarco

+0

Привет, Сидхарт, я не хочу использовать переменную приложения. Была опечатка, я всегда передавал массив инъекций, и он повторно инициализировал модуль на каждой странице. Проверьте ответ Ripley511. – JVM

+0

Не знаете, почему это получило @JVM Если вы посмотрите на этот код, переменная приложения не будет повторно инициализировать модуль приложения, он просто ссылается на него. –

0

Во-первых, в контроллере может быть только один модуль. Это пример var app = angular.module ('myApp', []) .controller ('Controllername', function() {};