黄金布局|错误:ng:btstrpd App已经使用此元素进行了自举

时间:2016-12-07 07:10:15

标签: angularjs

我正在使用goldenlayr和angualrJS。我面临以下异常:

Error: ng:btstrpd App Already Bootstrapped with this Element

执行此行代码

myGoldenLayout.on('initialised', function () {
 angular.bootstrap(angular.element('#layoutContainer')[0], ['app']);
});

原因是,我已经在我的HTML中使用了ng-app,那么当我已经拥有ng-app时,如何注册黄金版?

https://github.com/codecapers/golden-layout-simple-angular-example/issues/1

1 个答案:

答案 0 :(得分:1)

好吧,official Golden Layout docs建议使用手动引导,但是如果你想继续使用ng-app,那么你必须确保你的组件(模板)是由Angular编译的(通过{{1 }})。以下是如何执行此操作的示例:

$compile

基本上,与您提供的存储库中的示例的主要区别在于,我们不是仅添加原始HTML,而是使用Angular angular.module('someApp') // your main module name here .run(function ($compile, $rootScope) { myLayout.registerComponent('template', function( container, state ){ var templateHtml = $('#' + state.templateId).html(); var compiledHtml = $compile(templateHtml)($rootScope); container.getElement().html(compiledHtml); }); myLayout.on( 'initialised', function() { $rootScope.$digest(); // Golden Layout is done, let Angular know about it }); }); // somewhere... myLayout.init(); ,因此现在它知道设置绑定并保持html更新。< / p>

这应该允许您继续使用$compile而不是手动引导程序。