Cha*_*son 4 lodash angular-google-maps
我正在尝试使用angular-google-maps,但它在错误中打破了chrome
TypeError: _.contains is not a function
Run Code Online (Sandbox Code Playgroud)
我的DOM元素看起来像
<div id="dashboard_map" class="tab-pane fade in active" ng-controller="mapsCtrl" ng-init="url = '/api/companies'; initialise();">
<div class="panel panel-default" ng-hide="!custom">
<div class="panel-heading row">
<div class="col-md-5">
{!! Lang::get('google_maps.map1.title') !!}
</div>
<div class="col-md-2 col-md-offset-5">
<i class="filter glyphicon glyphicon-filter pull-right" ng-click="custom=!custom"></i>
</div>
</div>
<div class="panel-body">
<div id="map_canvas">
<ui-gmap-google-map center='map.center' zoom='map.zoom'>
</ui-gmap-google-map>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我按顺序加载gmap3,gmap3menu,lodash,angularjs,angular-resource,angular-simple-logger和finally-google-maps.我的控制器包含以下$ scope属性
$scope.map = {center: {latitude: 40.1451, longitude: -99.6680 }, zoom: 4 };
Run Code Online (Sandbox Code Playgroud)
显示地图但我无法摆脱错误.
任何想法/建议都非常感谢.
通过bower安装angular-google-maps(在我的情况下)lodash到版本4.很明显从版本3.*到4更改'包含'为'包含'和'对象'为'zipObject'.如图所示这里我解决了:
uiGmapGoogleMapApi.then(function(maps) {
if( typeof _.contains === 'undefined' ) {
_.contains = _.includes;
}
if( typeof _.object === 'undefined' ) {
_.object = _.zipObject;
}
$scope.map = {..map stuff}
})
Run Code Online (Sandbox Code Playgroud)
对不起英文不好,请编辑纠正