Подтвердить что ты не робот

Как написать собственный модуль для AngularJS?

Мне нужно написать собственный модуль для AngularJS, но я не могу найти хорошую документацию по этому вопросу. Как написать собственный модуль для AngularJS, который я могу предоставить другим пользователям?

4b9b3361

Ответ 1

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

Например, посмотрите на любой angular ui module, и вы увидите много настраиваемых модулей.
Некоторые определяют только одну директиву, в то время как другие определяют больше вещей.

Как @nXqd, основной способ создания модуля:

// 1. define the module and the other module dependencies (if any)
angular.module('myModuleName', ['dependency1', 'dependency2'])

// 2. set a constant
    .constant('MODULE_VERSION', '0.0.3')

// 3. maybe set some defaults
    .value('defaults', {
        foo: 'bar'
    })

// 4. define a module component
    .factory('factoryName', function() {/* stuff here */})

// 5. define another module component
    .directive('directiveName', function() {/* stuff here */})
;// and so on

После определения вашего модуля очень легко добавить к нему компоненты (без необходимости хранить ваш модуль в переменной):

// add a new component to your module 
angular.module('myModuleName').controller('controllerName', function() {
    /* more stuff here */
});

И часть интеграции довольно проста: просто добавьте ее как зависимость от вашего модуля приложения (здесь, как angular ui делает это).

angular.module('myApp', ['myModuleName']);

Ответ 2

Если вы хотите найти хороший пример, вы должны изучить текущий модуль, написанный в angularJS. Научитесь читать их исходный код. Btw это структура, которую я использую для записи модулей в angularJS:

var firstModule = angular.module('firstModule', [])
firstModule.directive();
firstModule.controller();

// in your app.js, include the module

Это основной.

Ответ 3

var newMod = angular.module('newMod', []);

newMod.controller('newCon', ['$scope', function ($scope) {
    alert("I am in newCon");
    $scope.gr = "Hello";
}]);

Здесь newMod - это модуль, который не имеет зависимостей [] и имеет контроллер, у которого есть предупреждение, указывающее, что вы находитесь в контроллере и переменная со значением hello.