javascript - Ng-repeat 不更新数组

标签 javascript angularjs arrays

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

相关文章:

javascript - AngularJS 删除范围内数组的最后一个元素

javascript - 选择未使用 ng-model 选择正确的选项

javascript - 满足If条件时从json中获取Key的Value

java - 在java中备份数组

javascript - 根据 textContent 中的索引突出显示文本

javascript - 将 Google 日历事件添加到非主日历

javascript - 动态排列 md-dialog 标签

javascript - AngularJS 模拟自动执行 Controller

c++ - 结构中的类对象数组

javascript Tic tac toe 游戏等待用户输入