正如标题所说,我的参考切换存在问题。 我的HTML:
div ng-repeat="data in parseurl">
{{data.url}}
</div>
在我的JS代码中,我试图做两件事。第一步是从服务器获取数据并将其放入一个数组(称为allsongs)。然后,我解析数据并将其放入另一个数组(parseurl)。
var app = angular.module("write", []);
app.controller("Ctrl", ['$scope', '$http', function($scope, $http){
$scope.allsongs = [];
$scope.parseurl = [];
$scope.getstuff = function(){
$http.get("my link here").then(function(response){
$scope.allsongs = response.data;
}); //step one -> this works!
$scope.parser(); //step two
};
$scope.parser = function()
{
for(i=0;i<$scope.allsongs.length;i++) {
for(var key in $scope.allsongs[i]) {
var value = $scope.allsongs[i][key];
var object = {Url : value.Url}; //this does contain the correct info I want
$scope.parseurl.push(object);
}
$scope.getstuff();
}]);
所以正在发生的事情是,如果我在allsongs上重复,那么我会得到一堆未解析的网址。但如果我在parseurl上重复,那么我什么也得不到。显然,参考文献并没有改变,但我怎么能这样做呢?
答案 0 :(得分:2)
$scope.parser()
。将它放入你的promise回调函数中,如下例所示。请注意$http
是一个异步函数。以这种方式$scope.parser()
在您的请求完成之前执行。
$scope.getstuff = function(){
$http.get("my link here").then(function(response){
$scope.allsongs = response.data;
$scope.parser();
});
};