我試圖創建一個顯示數據庫中所有位置的地圖。 我可以爲一個對象做到這一點,但我不能爲所有。如何從Grails中的JSON對象獲取數據庫變量
在我的控制,我得到的所有商店和發送到angularjs文件
def getalllocation(){
def shops=Shop.findAll()
[shops:shops] as JSON
}
javascriptfile; //這適用於一家商店
$scope.getshopinfo = function() {
$http.post("/shop/getshoplocation", data = {shopId: $("#shopId").val()}).success(function (json) {
$scope.shop = json;
//$scope.map = {center: {latitude: 45, longitude: -73}, zoom: 8};
//$scope.map = {center: {latitude: $scope.shop.shopLattitude, longitude: $scope.shop.shopLongitude}, zoom: 8};
$scope.map = {
center: {latitude: $scope.shop.shopLattitude, longitude: $scope.shop.shopLongitude},
zoom: 10,
events: mapevents
};
$scope.searchbox = {
template: "searchbox.tpl.html",
events: searchevents
};
$scope.marker = {
coords: {latitude: $scope.shop.shopLattitude, longitude: $scope.shop.shopLongitude},
id: '2'
};
$("#shopLattitude").val($scope.shop.shopLattitude);
$("#shopLongitude").val($scope.shop.shopLongitude);
// $scope.$apply();
}).finally(function() {
});
};
if ($("#shopId").val()) {
$scope.getshopinfo();
}
}]);
我可以用多個標記創建地圖,但不能從數據庫創建地圖;
var locations = [
[
"New Mermaid",
36.9079,
-76.199,
1,
"Georgia Mason",
"",
"Norfolk Botanical Gardens, 6700 Azalea Garden Rd.",
"coming soon"
],
[
"1950 Fish Dish",
36.87224,
-76.29518,
2,
"Terry Cox-Joseph",
"Rowena's",
"758 W. 22nd Street in front of Rowena's",
"found"
]]
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function() {
infowindow.setContent(locations[i][0], locations[i][6]);
infowindow.open(map, marker);
}
})(marker, i));
我不知道我是如何結合這些代碼並從數據庫位置獲取具有多個標記的地圖。感謝您的幫助
我做的那個位。{{== == coukd剛剛被Shop.get params.shopId。在Java腳本世界裏,你也可以調試。通常情況下,你的對象返回爲變成scope.shop的json將使用對象格式。因此,如果您在該段中輸入console.log('json object is'+ JSON.stringify(json)),然後打開您的瀏覽器開發控制檯,它應該記錄您的整個輸出 – Vahid
謝謝@vahid。這解決了我的問題。 –