這句法從ngMap https://github.com/allenhwkim/angularjs-google-maps採取NgMap參考正常工作:進入內部角控制器
angular
.module('trails')
.controller('MyController', function (NgMap) {
NgMap.getMap().then(function (map) {
console.log(map.getCenter());
console.log('markers', map.markers);
console.log('shapes', map.shapes);
});
});
但是我用了聲明控制器的語法是不同的,我得到的錯誤:
angular.js:13642 TypeError: Cannot read property 'getMap' of undefined
它在下面進一步失敗:
NgMap.getMap().then(function (map) {
控制器聲明爲:
angular
.module('trails')
.controller('ActivityDetailsController', [
'$mdSidenav', '$mdBottomSheet', '$timeout', '$log', '$http', '$location', '$routeParams',
ActivityDetailsController
]);
function ActivityDetailsController($mdSidenav, $mdBottomSheet, $timeout, $log, $http, $location, $routeParams, NgMap) {
var self = this;
$http.get('/activity/detailStats/' + $routeParams.id, {
params: { max: "1000" }
})
.success(function (data) {
self.stats = data.stats;
// Zoom to fit
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < self.stats.activityTrackPoints.length; i++) {
var latlng = new google.maps.LatLng(self.stats.activityTrackPoints[i][0], self.stats.activityTrackPoints[i][1]);
bounds.extend(latlng);
}
NgMap.getMap().then(function (map) {
map.setCenter(bounds.getCenter());
map.fitBounds(bounds);
});
})
.error(function (data, status) {
console.error('https error', status, data);
})
.finally(function() {
});
我曾嘗試加入NgMap在其他明顯的地方,如:
...'$routeParams', NgMap,
ActivityDetailsController...
或做ActivityDetailsController $注入= NgMap控制器申報等之前,但它給出了一個類似的錯誤上面因爲NgMap不能被引用。
編輯:ngMap依賴關係是在另一個類似於答案的文件中設置的。對不起,我沒有提前,但上面的代碼工作和不工作在一起在同一個地方,所以我認爲這似乎可以離開原來的。
var app = angular
.module('trails', ['ngMaterial', 'md.data.table', 'ngRoute', 'ngMap'])
我不知道這是我錯誤地試圖使用NgMap該控制器聲明或東西NgMap ...或最有可能我與任何框架缺乏經驗注入的方式做!
沒有運氣引用vm.map或在我的情況self.map。錯誤仍然是「Can not read property'getMap'of undefined」,所以看起來NgMap並非像這樣聲明控制器函數的「注入」。 – Steve
.controller('ActivityDetailsController','$ mdSidenav','$ mdBottomSheet','$ timeout','$ log','$ http','$ location','$ routeParams','NgMap', ActivityDetailsController ]) – Abcd
你得到了它Abcd,'NgMap'周圍的引號也需要在這裏(我總是嘗試),愛你的工作!任何想法爲什麼? – Steve