Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 查看器时钟和时间线显示不佳_Angularjs_Firefox_Twitter Bootstrap 3_Cesium - Fatal编程技术网

Angularjs 查看器时钟和时间线显示不佳

Angularjs 查看器时钟和时间线显示不佳,angularjs,firefox,twitter-bootstrap-3,cesium,Angularjs,Firefox,Twitter Bootstrap 3,Cesium,以下是我正在使用的部分:Angular 1.5.8、Bootstrap 3.3.7、Cesium 1.27.0、Firefox 49(我还没有在其他浏览器中测试过) 我试图在一个角度1应用中使用铯。问题是: 铯渲染的时钟占据了整个屏幕的下半部分。时间线也没有出现。在我的SPA中,查看器似乎第一次正确地显示了时钟和时间线。但是,当我切换到另一个“页面”,然后返回到我的铯元素页面时,显示会变得混乱,并一直保持这种状态,直到我关闭浏览器选项卡并重新开始。 以下是我所拥有的: 模块A.控制器: vm.v

以下是我正在使用的部分:Angular 1.5.8、Bootstrap 3.3.7、Cesium 1.27.0、Firefox 49(我还没有在其他浏览器中测试过)

我试图在一个角度1应用中使用铯。问题是:

铯渲染的时钟占据了整个屏幕的下半部分。时间线也没有出现。在我的SPA中,查看器似乎第一次正确地显示了时钟和时间线。但是,当我切换到另一个“页面”,然后返回到我的铯元素页面时,显示会变得混乱,并一直保持这种状态,直到我关闭浏览器选项卡并重新开始。

以下是我所拥有的:

模块A.控制器:

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;
CesiumLockService
位于另一个模块中,该模块是ModuleA的依赖项之一。该服务只是创建一个铯时钟,并提供一个get/set方法。其想法是使用Angular的单例服务为任何客户机模块提供相同的铯时钟,以使所有客户机模块彼此保持同步

模块A.指令:

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>

在我的ModuleDirective中,我将以下内容添加到我的linkFunction中:

function linkFunction(scope, element, attr, ctrl){
     var raw = element[0];
     raw.className = "cesium-viewer";
     ctrl.setCesiumElem(raw);
}

显然,铯查看器非常喜欢铯查看器类,以使其外观美观。

铯查看器需要放置在大小可控的
div
中,例如设置
显示:块的div;位置:相对位置;宽度:100%;高度:100%
,或与之类似的CSS

正如您所发现的,向div添加
cesium viewer
类是解决此问题的有效方法,因为该类包含所需的样式。如果你这么想,你也可以自己做一个类,例如,如果你想让铯最终进入一个容器,而不是
width:100%;高度:100%
,但仍然是一个受控大小,而不是要求浏览器允许根据内容调整大小