這些是我正在使用的部分:Angular 1.5.8,Bootstrap 3.3.7,Cesium 1.27.0,Firefox 49(我還沒有在其他瀏覽器中測試過)。查看器時鐘和時間軸顯示不佳
我想在Angular 1應用程序中使用Cesium。問題是這樣的:
銫是渲染一個時鐘,佔據屏幕的整個下半部分。時間軸不會出現。 Viewer似乎在我的SPA中第一次正確顯示時鐘和時間線。但是,當我切換到另一個「頁面」,然後返回到我的cesium頁面時,這是顯示混亂的時候,並保持這種狀態直到我關閉瀏覽器選項卡並重新開始。
這是我有:
ModuleA.controller:
vm.viewer = new Cesium.Viewer(elem, {
terrainProvider : new Cesium.CesiumTerrainProvider({
url : 'https://assets.agi.com/stk-terrain/world'
}),
baseLayerPicker: false,
clock: CesiumClockService.get()
});
vm.viewer.scene.globe.enableLighting = false;
的CesiumClockService
是另一個模塊是ModuleA的依賴關係之一。該服務只需創建一個Cesium.clock並提供get/set方法。這個想法是使用Angular的singleton服務爲任何客戶端模塊提供相同的Cesium時鐘,以保持所有客戶端模塊在時間上的一致。
ModuleA.directive:
var dir = {
restrict: 'E',
controller: 'ModuleAController',
bindToController: true,
link: linkFunction
};
return dir;
function linkFunction(scope, element, attr, ctrl){
ctrl.setCesiumElem(element[0]);
}
,這種生活在HTML:
<body>
<div style="height: 100%;width: 100%;padding-top: 48px;padding-bottom: 48px;margin-bottom: 30px;">
<div class="container-fluid">
<div id="main-container">
<div class="row">
<div class="col-xs-12">
<module-A-directive></module-A-directive>
</div>
</div>
</div>
</div>
</div>
</body>