如何通过angularjs ng click函数为javascript对象赋值
在下面的代码中,我试图为google map的lat long设置一些值,当我调用绑定到ng click指令的change函数时,页面不会加载,但是如果没有change()func,所有内容都会加载得很好。我可能遗漏了一些角度的核心概念,这是因为我在10天前才开始研究它,请在这里纠正我,如果有人能建议我用按钮点击来改变我的lat long,我将非常感谢这个建议如何通过angularjs ng click函数为javascript对象赋值,javascript,angularjs,google-maps-api-3,javascript-objects,angularjs-ng-click,Javascript,Angularjs,Google Maps Api 3,Javascript Objects,Angularjs Ng Click,在下面的代码中,我试图为google map的lat long设置一些值,当我调用绑定到ng click指令的change函数时,页面不会加载,但是如果没有change()func,所有内容都会加载得很好。我可能遗漏了一些角度的核心概念,这是因为我在10天前才开始研究它,请在这里纠正我,如果有人能建议我用按钮点击来改变我的lat long,我将非常感谢这个建议 app.controller('MapCtrl', function ($scope){ // $scope.change=fu
app.controller('MapCtrl', function ($scope){
// $scope.change=function(){
$scope.Latitude="23.200000";
$scope.Longitude="79.225487";
$scope.assignLat=function () {
var lati= $scope.Latitude;
return lati;
}
$scope.assignLong=function () {
var longi= $scope.Longitude;
return longi;
}
console.log($scope.assignLat());
console.log($scope.assignLong());
// }
var cities = [{
city : 'India',
desc : 'This is the best country in the world!',
lat : $scope.assignLat(),
long : $scope.assignLong()
}];
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(25,80),
mapTypeId: google.maps.MapTypeId.TERRAIN
}
$scope.map = new google.maps.Map(document.getElementById('map'), mapOptions);
$scope.markers = [];
var infoWindow = new google.maps.InfoWindow();
var createMarker = function (info){
var marker = new google.maps.Marker({
map: $scope.map,
position: new google.maps.LatLng(info.lat, info.long),
title: info.city
});
marker.content = '<div class="infoWindowContent">' + info.desc + '</div>';
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent('<h2>' + marker.title + '</h2>' + marker.content);
infoWindow.open($scope.map, marker);
});
$scope.markers.push(marker);
}
for (i = 0; i < cities.length; i++){
createMarker(cities[i]);
}
$scope.openInfoWindow = function(e, selectedMarker){
e.preventDefault();
google.maps.event.trigger(selectedMarker, 'click');
}
});
app.controller('MapCtrl',函数($scope){
//$scope.change=function(){
$scope.Latitude=“23.200000”;
$scope.Longitude=“79.225487”;
$scope.assignLat=函数(){
var lati=$scope.Latitude;
返回纬度;
}
$scope.assignLong=函数(){
变量longi=$scope.Longitude;
返回longi;
}
log($scope.assignLat());
log($scope.assignLong());
// }
var城市=[{
城市:“印度”,
描述:“这是世界上最好的国家!”,
lat:$scope.assignLat(),
long:$scope.assignLong()
}];
变量映射选项={
缩放:4,
中心:新google.maps.LatLng(25,80),
mapTypeId:google.maps.mapTypeId.TERRAIN
}
$scope.map=new google.maps.map(document.getElementById('map'),mapOptions);
$scope.markers=[];
var infoWindow=new google.maps.infoWindow();
var createMarker=函数(信息){
var marker=new google.maps.marker({
map:$scope.map,
位置:新google.maps.LatLng(info.lat,info.long),
标题:信息城
});
marker.content=''+info.desc+'';
google.maps.event.addListener(标记'click',函数(){
infoWindow.setContent(“”+marker.title+“”+marker.content);
infoWindow.open($scope.map,marker);
});
$scope.markers.push(marker);
}
对于(i=0;i
您的change()
应该在console.log($scope.assignLong());``行之后结束?修正压痕。由于缺乏适当的压痕,很难看到发生了什么。问题似乎是由于将$scope.assignLat
和$scope.assignLong
的函数赋值嵌套在change
函数中引起的。