Javascript 如何创建动态变量和分配数据

Javascript 如何创建动态变量和分配数据,javascript,angularjs,Javascript,Angularjs,我有一个小应用程序,我将城市和国家添加到列表中,并使用http请求请求各个城市的天气 有什么问题 :当我在列表中有多个城市时,我请求特定城市的天气,它会更新列表中所有城市的天气 我想要什么?:我想要创建一个动态变量或数组索引,在这里我可以存储和显示各个城市的天气信息,并将其名称作为索引。除了动态变量或数组索引之外,我对其他解决方案持开放态度 有plnkr吗?:这是指向的链接。 添加2个条目以复制问题 1) 印度浦那 2) 印度孟买 我尝试的内容:我尝试使用$parse和$scope.$eval(

我有一个小应用程序,我将城市和国家添加到列表中,并使用http请求请求各个城市的天气

有什么问题 :当我在列表中有多个城市时,我请求特定城市的天气,它会更新列表中所有城市的天气

我想要什么?:我想要创建一个动态变量或数组索引,在这里我可以存储和显示各个城市的天气信息,并将其名称作为索引。除了动态变量或数组索引之外,我对其他解决方案持开放态度

有plnkr吗?:这是指向的链接。 添加2个条目以复制问题 1) 印度浦那 2) 印度孟买

我尝试的内容:我尝试使用$parse$scope.$eval()将“destination”变量转换为字符串,该字符串是一个函数参数

这是我的getWeather函数

$scope.getWeather = function(destination){

    $http.get(destination+".json").then(
        function successCallback (response){
            if(response.data){
                $scope.dest = {};
                $scope.dest = response.data;                

                // $scope.info[$parse(destination)] = response.data;
                // console.log($scope.info[$parse(destination)]);

            }
        },
        function errorCallback (err){
            alert(err);
        }
    );
}

每个目标对象/模型也应该有自己的
weather
属性。获取该目的地的天气后,将
weather
属性设置为数据

//代码在这里
var testingaluarapp=angular.module('myapp',[]);
testinggluarapp.controller('mycontroller',函数($scope,$http){
$scope.title=“测试AngularJS应用程序”;
$scope.destinations=[];
$scope.info=[];
//目的地类别/型号
var NewDestination=函数(){
this.city='';
this.country='';
this.weather=null;
}
$scope.newDestination=newnewdestination();
$scope.addDestination=函数(){
$scope.destinations.push($scope.newDestination);
$scope.newDestination=newnewdestination();
};
$scope.removedestations=函数($index){
$scope.destinations.splice($index,1);
};
//传入对目标对象的引用
$scope.getWeather=函数(目标){
$http.get(destination.city+“.json”)。然后(
函数成功回调(响应){
if(response.data){
//将确定的天气设置为响应的数据
destination.weather=response.data;
}
},
函数errorCallback(err){
警惕(err);
}
);
}
});

{{title}}
添加
你的愿望清单
{{destination.city},{{{destination.country}
-{{destination.weather.weather},{{{destination.weather.temp}
去除
天气
所以这里有一个答案:


基本上,我认为您使$scope.dest或索引等变得有点复杂。只是将数据放在目的地上对我有效。

它有效,真正的问题是,以前的“destination”参数包含值“pune”,我试图向其添加“destination.data”,这是错误的,并且抛出了错误。在阅读了您的答案后,我意识到出了什么问题,“destination”参数必须是object而不是string。谢谢
destination.data = response.data