Poniższy przykład pomógł nam ładowanie początkowe widżet do strony. Najpierw tworzy się div - z odrobiną jQuery - aby widget wczytał szablon z ng-include
, kontrolowany jest przez WidgetLogoController
. Następnie tworzony jest moduł WidgetConfig
, który przechowuje konfigurację widżetu.
$('#pageWidget').html(`<ng-include src="'/dist/templates/widgetLogo.html'"></ng-include>`)
.attr('ng-controller','WidgetLogoController');
var widgetConfig = {
'widgetId': data.pageWidgetId,
'areaId': data.area,
'pageId': data.pageId
};
angular.module('WidgetConfig', []).value('WidgetConfig', widgetConfig);
angular.bootstrap(document.getElementById('pageWidget'), ['Widget', 'WidgetConfig']);
Widget
moduł zawiera konfigurację WidgetConfig
ale również ma miejsce gdyż właścicielem w CONFIG
:
(function (window, angular) {
'use strict';
window.app = angular.module('Widget', ['ngFileUpload', 'WidgetConfig'])
.constant('CONFIG', {
BASE_URL: 'http://osage.brandportal.com/'
});
})(window, angular);
WidgetController
mogą uzyskać dostęp CONFIG
i WidgetConfig
.
(function (app) {
'use strict';
app.controller('WidgetLogoController', ['CONFIG', 'WidgetConfig',
function(CONFIG, WidgetConfig){
console.log('---WidgetLogoController');
console.log('CONFIG', CONFIG);
console.log('WidgetConfig', WidgetConfig);
}]);
}(app));
Tak, używam obecnie modułu, który przesłania usługę "Config" zdefiniowaną w oryginalnym module, wygląda na to, że również będzie działać, z mniejszą ilością pisania. Jedynym problemem jest to, że muszę wygenerować ciąg znaków dla nazwy nowego modułu. W jaki sposób uczynić moduł bezimienny i po prostu przekazać obiekt modułu do zależności bootstrap? Nie mogłem tego zmusić do działania. – doubledriscoll
Nie musisz podawać unikatowej nazwy swojego modułu konfiguracyjnego. Możesz po prostu nadpisać poprzednią, gdy uruchomisz ponownie swoje następne wystąpienie. Zobacz tutaj: http://jsfiddle.net/Sjeiti/eT4Z5/ – Sjeiti
nice Sjeiti :-) –