2015-09-22 22 views
4

我試圖用角谷歌,地圖,但它在Chrome中斷與錯誤角谷歌 - 地圖 - 「_contains不是一個函數」在Chrome

TypeError: _.contains is not a function 

我的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> 

和我加載gmap3,gmap3menu,lodash,angularjs,角資源,角簡單記錄器,最後角谷歌,地圖的順序。我的控制器包含以下$ scope屬性

$scope.map = {center: {latitude: 40.1451, longitude: -99.6680 }, zoom: 4 }; 

地圖顯示,但我無法擺脫該錯誤。

任何想法/建議,非常感謝。

+0

根據錯誤,我可以給出的唯一建議是用'_.contains'查找一行。 – Magus

回答

4

您有哪些版本的lodash?我可以在3.10.1 version中看到contains作爲includes的別名,但不在master中。 (只要搜索包含字)角谷歌 - 地圖

+0

謝謝,我的工作 – user1105

1

最新版本要求lodash 4的依賴(但lodash取代_.contains與_.includes [他們4版本之前的別名])。所以可能需要爲你的項目選擇較低版本的lodash(也許一個彈出窗口詢問你通過'bower install'安裝東西時需要哪個版本的lodash),或者請求angular-google-maps來修復(我和其他人只是這樣做,巧合的是剛纔 https://github.com/angular-ui/angular-google-maps/issues/1682

+0

注:據說這是固定的。可能想嘗試最新的高手 – armyofda12mnkeys

7

通過涼亭解析爲版本4 Aparently從版本安裝角谷歌 - 地圖(在我的情況)lodash 3 * 4的變化「包含」用於「包含」和'對象'爲'zipObject'。 如圖所示here我解決了:

uiGmapGoogleMapApi.then(function(maps) { 
     if(typeof _.contains === 'undefined') { 
     _.contains = _.includes; 
     } 
     if(typeof _.object === 'undefined') { 
     _.object = _.zipObject; 
     } 
     $scope.map = {..map stuff} 
}) 

對不起,我的英語不好,請編輯糾正

+0

這太棒了!應該接受答案! – Mika

+0

已經固定在新版本上 – Musma

0

嘗試包括lodash LIB

<script> 
    _.contains = _.includes; 
    </script>