如何通过angularjs ng click函数为javascript对象赋值

如何通过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

在下面的代码中,我试图为google map的lat long设置一些值,当我调用绑定到ng click指令的change函数时,页面不会加载,但是如果没有change()func,所有内容都会加载得很好。我可能遗漏了一些角度的核心概念,这是因为我在10天前才开始研究它,请在这里纠正我,如果有人能建议我用按钮点击来改变我的lat long,我将非常感谢这个建议

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
函数中引起的。