2015-02-04 2 views
1

Я использую gulp для того, чтобы согласовать мои скрипты в один файл. Перед конкатенацией я разделил свои .js-файлы на отдельные файлы.concatenate javascript в анонимной функции с gulp

Итак, у меня есть app.js, где я объявляю свое угловое приложение и некоторые другие вещи. Но у меня также есть route.js, где я объявляю свою маршрутизацию. Однако объявление моего углового приложения в app.js завернуто в анонимную функцию, поэтому, когда он объединяет app.js и route.js, route.js выходит за рамки объявления моего приложения с угловым выражением.

Есть ли способ вставить сценарий в область с помощью Gulp вместо того, чтобы объединить все это вместе? Или есть какой-то другой подход, который я пропустил, помимо дробления JSLint и анонимной функции?

ответ

1

Если вы не используете модули CommonJS или AMD и просто конкатенируете скрипты, просто убедитесь, что каждый конкатенированный скрипт получает необходимый ему модуль в своей области.

(function() { 

    // Declare app 
    var app = angular.module('Application', ['ngRoute']); 

    // Do stuff with variable app in scope. 

})(); 

Теперь в вашем routes.js

(function() { 

    // Grab the already created module for use 
    // in this scope. 
    var app = angular.module('Application'); 

    app.config([ 
     '$locationProvider', 
     '$routeProvider', 
     function($locationProvider, $routeProvider) { 

      $locationProvider.html5Mode = true; 

      $routeProvider.when('/', { 
       controller : 'MyCtrl', 
       templateUrl : 'index.html' 
      }); 
     } 
    ]); 
})() 
+0

Это то, что я искал. Спасибо, Дэвид! – Dani

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