В настоящее время я борюсь за понимание принципов модулей в AngularJs.

У меня есть 3 файла:

  • Приложение
  • Контроллер
  • Завод

Я хочу использовать фабрику внутри моего контроллера:

App.js :

angular.module('myApp', ['ngMaterial', 'ngMessages']);

Controller.js :

angular.module('myApp').controller('MyController', function () {
    ...
}

Factory.js :

angular.module('myApp').
    factory('test', function () {
        return 'Just a test';
    });

Как мой контроллер может узнать от test - фабрики?

-2
mosquito87 18 Дек 2015 в 13:25

4 ответа

Лучший ответ

Вы вводите это как зависимость, как вы делаете для 'ngMaterial', 'ngMessages'

angular.module('myApp').controller('MyController', ['test',function (test) {
 ...
]};

PS это то же самое, что делать, но работать, когда вы увеличиваете код

angular.module('myApp').controller('MyController',function (test) {...};
1
AlainIb 18 Дек 2015 в 10:27

Введите свой завод туда, где вы хотите его использовать. В этом случае ваш контроллер.

angular.module('myApp').controller('MyController', function ('test') {
    ...
}

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

0
Charlie 18 Дек 2015 в 10:31

Ваш код совершенно в порядке. Вам просто нужно ввести фабрику в свой контроллер. Смотрите ниже

angular.module('myApp').controller('MyController', ['$scope','test',function ($scope, test) {
 // Do your stuff here with test
]};
0
Vivek 18 Дек 2015 в 10:33

Внедрение зависимости!

посмотрите здесь.

Введите фабрику в контроллер. Тогда вы можете использовать заводские услуги с вашего контроллера.

0
Husni Abdul Nazer 18 Дек 2015 в 10:52