Das folgende Beispiel hat uns geholfen, zu einer Seite Bootstrapping ein Widget aus. Zuerst wird ein div gemacht - mit ein bisschen jQuery - damit das Widget eine Vorlage mit ng-include
lädt, wird es von WidgetLogoController
gesteuert. Als nächstes wird ein Modul WidgetConfig
erstellt, das die Konfiguration des Widgets enthält.
$('#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
Modul beinhaltet die WidgetConfig
Konfiguration, sondern hat auch einen Platz für sie in CONFIG
besitzen:
(function (window, angular) {
'use strict';
window.app = angular.module('Widget', ['ngFileUpload', 'WidgetConfig'])
.constant('CONFIG', {
BASE_URL: 'http://osage.brandportal.com/'
});
})(window, angular);
WidgetController
kann CONFIG
und WidgetConfig
zugreifen.
(function (app) {
'use strict';
app.controller('WidgetLogoController', ['CONFIG', 'WidgetConfig',
function(CONFIG, WidgetConfig){
console.log('---WidgetLogoController');
console.log('CONFIG', CONFIG);
console.log('WidgetConfig', WidgetConfig);
}]);
}(app));
Ja, ich benutze derzeit ein Modul, das einen 'Config' Dienst außer Kraft setzt, der auf dem ursprünglichen Modul definiert ist, das sieht so aus, als würde es genauso funktionieren, mit etwas weniger Tipparbeit. Der einzige Nachteil ist, dass ich eine Zeichenfolge für den neuen Modulnamen generieren muss. Irgendeine Möglichkeit, das Modul namenlos zu machen und das Modul-Objekt einfach an die Abhängigkeiten des Bootstraps zu übergeben? Ich konnte das nicht zur Arbeit bringen. – doubledriscoll
Sie müssen keinen eindeutigen Namen für Ihr Config-Modul angeben. Sie können das alte einfach überschreiben, wenn Sie Ihre nächste Instanz starten. Siehe hier: http://jsfiddle.net/Sjeiti/eT4Z5/ – Sjeiti
nette Sjeiti :-) –