{{data.url}} 在我的 JS 代码中,我试图做两件事。第一步-6ren">
gpt4 book ai didi

javascript - Ng-repeat 不更新数组

转载 作者:行者123 更新时间:2023-11-30 15:27:13 25 4
gpt4 key购买 nike

正如标题所说,我在引用切换方面遇到了问题。我的 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();
}]);

所以发生的事情是,如果我 ng-repeat allsongs,那么我会得到一堆未解析的 url。但是如果我在 parseurl 上 ng-repeat,那么我什么也得不到。显然引用没有改变,但我该怎么做呢?

最佳答案

$scope.parser() 需要在接收到数据后调用。将它放入您的 promise 回调函数中,如下例所示。请注意,$http 是一个异步函数。这样,$scope.parser() 就在您的请求完成之前执行了。

$scope.getstuff = function(){
$http.get("my link here").then(function(response){
$scope.allsongs = response.data;
$scope.parser();
});
};

关于javascript - Ng-repeat 不更新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com