我正在尝试创建angular.dart
具有多个视图的单页应用程序,但我找不到在被路由到的视图中加载Google 地图的工作示例。
我正在使用该google_maps
软件包。div
在主页中定义包含地图的元素时效果很好index.html
,但是在视图中定义地图 div 时会引发异常:
'TypeError: Cannot read property 'offsetWidth' of null'
我想这意味着在加载指令类时尚未呈现视图。应该如何在视图中加载地图?
这是路由器:
@InjectableService()
class DefaultRouteInitializer implements RouteInitializer {
init(Router router, ViewFactory view) {
router.root
..addRoute(
name: 'city',
path: '/city',
enter: view('view/city_view.html'));
}
}
和视图html:
<div city-ctrl>
<div class="row">
<div class="col-md-12">
<div id="city_map_canvas" style="width: 100px; height: 100px;"> </div>
</div>
</div>
</div>
并且 Directive 类在创建实际地图时遇到问题:
import 'dart:html';
import 'package:angular/angular.dart';
import 'package:google_maps/google_maps.dart';
@NgDirective(
selector: '[city-ctrl]'
)
class CityController {
CityController() {
final mapOptions = new MapOptions()
..zoom = 8
..center = new LatLng(-34.397, 150.644)
..mapTypeId = MapTypeId.ROADMAP
;
final map = new GMap(querySelector("#city_map_canvas"), mapOptions);
}
}