2015-12-16 5 views
1

Я пишу Угловое приложение с помощью Webpack.Импортировать встроенный скрипт js webpack

У меня есть объект JavaScript-профиля пользователя, который я хотел бы создать на индексной странице с помощью встроенного скрипта для производительности, чтобы клиент не делал другого запроса и не задерживал остальную загрузку страницы.

Используя requirejs, вы можете назвать встроенный модуль, чтобы впоследствии вы могли зависеть от него. Есть ли способ сделать этот веб-пакет? или я застрял в объявлении его как глобального?

В качестве примера вы можете сделать, что вы можете сделать в Require JS;

<html> 
<body> 
... 
<script> 
define('userProfile', [ 
    'angular' 
], function(angular) { 
    return angular.module('userProfile', []) 
    .constant('userProfile', Object.freeze({ 
     id: '$!{user.userid}', 
     name: '$!{user.fullname}', 
     userType: '$!{user.userType}' 
    })) 
}); 
</script> 
... 
</body> 
</html> 

Поле пользователя, такие как '$!{user.userid}' являются шаблонными в том, когда подаются индекс страница.

Для этого зависит в вашем приложении вы можете просто сделать что-то вроде

define([ 
    'userProfile', 
], function() {  
    return angular.module('my-app', [ 
     'userProfile', 
    ]); 
}); 
+0

вы можете поделиться примером того, что вы пытаетесь достичь? – Louy

ответ

0

Вы можете указать переменную или модуль быть внешним по вашей WebPack конфигурации, так что вы просто включите его на странице с помощью сценария тег. Это то, что я сделать, чтобы пропустить библиотеки сверток с моим сценарием

// webpack.config.js 
"externals": { 
      "jquery": "jQuery", 
      "angular": "angular" 
     }, 

Но угловые работы вам не нужно импортировать модуль с WebPack

<script> 
(function(angular) { 
    angular.module('userProfile', []) 
    .constant('userProfile', Object.freeze({ 
     id: '$!{user.userid}', 
     name: '$!{user.fullname}', 
     userType: '$!{user.userType}' 
    })) 
})(angular); 
</script> 

А в модуле вы можете.

angular.module('whatever', ['userProfile']) 

Теперь вы можете использовать постоянную профиль пользователя в любом месте своего углового приложения.

angular.module('whatever').controller(['userProfile', function (userProfile) {}]); 

Вам просто нужно, чтобы убедиться, что сценарий Userprofile выполняется перед вашей пачкой

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