1

Я хочу, чтобы ввести свой вспомогательный модуль для основного приложения, но у меня есть ошибка впрыскаВводят подмодуль к основному модулю

(Ошибка: [нг: areq] http://errors.angularjs.org/1.3.5/ng/areq?p0=SelectionCtrl&p1=not%20aNaNunction%2C%20got%20undefined

это мое главное приложение

enter image description here

и это мой модуль enter image description here

к югу Как я могу исправить это? Спасибо!

+0

контроллер должен быть 'уаг controllerApp = angular.module ('app.newProject', []). Контроллер ('SelectionCtrl', функция() {// здесь код})' второй контроллер не должен создавать модуль с зависимостью снова, он должен 'controllerApp.controller ('TabController1')' –

ответ

2

Вы испортили объявление модуля. Вы объявили angular.module('app.newProject') два раза.

При создании его в первый раз, когда вы зарегистрировались SelectionCtrl. После этого вы создали еще один модуль с таким же именем angular.module('app.newProject,[]') с зависимостями и зарегистрированным контроллером TabController1. Когда вы создали второй модуль, он сначала переопределяет &, теперь он имеет только TabController1. Именно поэтому угловая ошибка бросания SelectionCtrl не требуется.

Существует несколько оценок, которые разрешают этот подход.

подход 1

Создайте модуль и сохраните его в какой-либо переменной и использовать его всякий раз, когда вы хотите.

var controllerApp = angular.module('app.newProject', []) 
.controller('SelectionCtrl',function(){ 
    //code here 
}); 

controllerApp.controller('TabController1',function(){ 
//your code here 
}); 

подход 2

Создайте модуль, и всякий раз, когда вы хотите использовать его, использовать его без зависимости.

angular.module('app.newProject', []) 
.controller('SelectionCtrl',function(){ 
    //code here 
}); 

angular.module('app.newProject').controller('TabController1',function(){ 
//your code here 
}); 

подход 3 (я не предпочел бы этот подход)

Создайте модуль и добавить вам компоненты в линейных манерах.

angular.module('app.newProject', []) 
.controller('SelectionCtrl',function(){ 
    //code here 
}) 
.controller('TabController1',function(){ 
//your code here 
}); 

Я бы предпочел, чтобы вы пошли на подход 2, который предоставит вам возможность связывать компоненты любым путем обращения к модулю.

+0

да, он работает, спасибо большое))))) И могу ли я задать еще один вопрос здесь? Как я могу разделить контроллеры из моего приложения.module.js? Я имею в виду, что я должен написать контроллеры в контроллере js? – Hayot

+0

Нет необходимости писать контроллер в контроллере.js, когда вы хотите добавить контроллер из любого места, вам нужно просто сослаться на этот модуль. как я объяснил в своем ответе. Вариант 2 может обеспечить большую гибкость. –

+0

Я понял, спасибо большое)) – Hayot

 Смежные вопросы

  • Нет связанных вопросов^_^