Мне нужно написать собственный модуль для AngularJS, но я не могу найти хорошую документацию по этому вопросу. Как написать собственный модуль для AngularJS, который я могу предоставить другим пользователям?
Как написать собственный модуль для AngularJS?
Ответ 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.