El siguiente ejemplo nos ayudó bootstrapping un widget a una página. Primero se crea un div, con un poco de jQuery, para que el widget cargue una plantilla con un ng-include
, está controlado por WidgetLogoController
. A continuación, se crea un módulo WidgetConfig
que contiene la configuración del widget.
módulo
$('#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
incluye la configuración WidgetConfig
pero también tiene un punto para que se compra en CONFIG
:
(function (window, angular) {
'use strict';
window.app = angular.module('Widget', ['ngFileUpload', 'WidgetConfig'])
.constant('CONFIG', {
BASE_URL: 'http://osage.brandportal.com/'
});
})(window, angular);
WidgetController
puede acceder CONFIG
y 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));
Sí, actualmente estoy usando un módulo que anula un servicio 'Config' que está definido en el módulo original, parece que también funcionaría, con un poco menos de tipeo. El único problema es que tengo que generar una cadena para el nuevo nombre del módulo. ¿Hay alguna forma de anular el módulo y simplemente pasar el objeto del módulo a las dependencias del programa de arranque? No pude hacer que eso funcione. – doubledriscoll
No tiene que proporcionar un nombre único para su módulo de configuración. Puede sobrescribir el anterior cuando inicia su próxima instancia. Vea aquí: http://jsfiddle.net/Sjeiti/eT4Z5/ – Sjeiti
nice Sjeiti :-) –