我正在使用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
答案 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
而不是手动引导程序。