config_loader.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. ///<reference path="../../headers/common.d.ts" />
  2. import _ from 'lodash';
  3. import angular from 'angular';
  4. function appConfigLoader($compile, $parse) {
  5. return {
  6. restrict: 'E',
  7. scope: {
  8. appModel: "="
  9. },
  10. link: function(scope, elem, attr) {
  11. debugger;
  12. System.import(scope.appModel.module).then(function(appModule) {
  13. var directive = appModule.directives.configView;
  14. if (!directive) {
  15. return;
  16. }
  17. if (!directive.hasBeenRegistered) {
  18. angular.module('grafana.directives').directive('nginxConfig', directive);
  19. directive.hasBeenRegistered = true;
  20. }
  21. var panelEl = angular.element(document.createElement('nginx-config'));
  22. elem.append(panelEl);
  23. $compile(panelEl)(scope);
  24. }).catch(function(err) {
  25. console.log('Failed to load panel:', err);
  26. scope.appEvent('alert-error', ['App Error', err.toString()]);
  27. });
  28. }
  29. };
  30. }
  31. angular.module('grafana.directives').directive('appConfigLoader', appConfigLoader);