2015-11-01 5 views
3

Я следую учебнику о том, как использовать AngularJS с RequireJs. Кажется, я не понимаю, как это работает.Использование requireJS с AngularJS

Автор создает файл app.js и внутри файла добавляет;

define(function (require) { 
    'use strict'; 

    var angular = require('angular'); 
    var services = require('./services/services'); 
    var controllers = require('./controllers/controllers'); 
    var directives = require('./directives/directives'); 
    var app = angular.module('App', ['services', 'controllers', 'directives']); 
    app.init = function() { 
     angular.bootstrap(document, ['App']); 
    }; 
... 
}) 

Но не показывает, как файлы services.js, controllers.js и directives.js структурированы.

Например, в файле служб предполагается, что у меня будет несколько определений служб. Это хорошая структура, потому что это означает, что я могу создавать несколько сервисов или контроллеров в одном скрипте. Проблема заключается в том, чтобы получить услуги; var = services в приложении.

+0

Основываясь на соглашениях об именах, я бы предположил, что они являются папками, и он использует плагин require-all, требующий целых папок. –

+0

Как файлы, загружаемые в AngulaJs, тогда? Обратите внимание, что угловые принимают несколько записей, обратите внимание: var app = angular.module ('App', ['services', 'controllerlers', 'directives']); Это означает, что «службы» имеют несколько модулей, приемлемо ли это? – LogicDev

+0

require(), используемый для служб, контроллеров и т. Д., Будет регистрироваться на угловом без необходимости возвратных переменных. Но есть некоторые проблемы ... правильная последовательность вызова .js для сервисов, например, должна быть определена по основному файлу require.js –

ответ

0

вложенности или группировка файлов с требуют довольно часто - поэтому услуги/services.js файл (который в настоящее время требуется в вашем приложении выше) может выглядеть следующим образом:

define(function (require) { 
    var services = {}; 
    services.service1 = require('services/service1'); 
    services.service2 = require('services/service2'); 
    services.service3 = require('services/service3'); 
    services.service4 = require('services/service4'); 
    services.service5 = require('services/service5'); 
    return services; 
}); 

, а затем services.service1 станет доступный в приложении.