AngularJS:从函数返回数据并将其分配给变量

新手上路,请多包涵

我是 angularjs 的新手,我正在尝试将数据从一个函数返回到另一个函数,并将其存储在一个变量中。

 $scope.myNameValidate = function(name){
    $scope.friendsList = $scope.getAllFriends(name);
    console.log("data", $scope.friendsList);
}

$scope.getAllFriends = function(name){
    friendService.getAllfriends(name)
    .then(function(data){
        //success
        console.log(data);
    }, function(err){
        //error
    })
}

我想将所有对象存储在一个变量中,但结果是未定义。

控制台输出

数据未定义

[对象,对象,对象,对象,对象,对象]

原文由 Raghav 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 260
2 个回答

你需要知道 Angular 的承诺

这个问题与 异步 操作有关。

您可以使用适当的 then 能够链接来修复它。你可以这样做。

 $scope.myNameValidate = function(name) {
    $scope.getAllFriends(name)
        .then(function(data) {
            $scope.friendsList = data;
            console.log(data);
        }, function(err) {
            //error
        });

}

$scope.getAllFriends = function(name) {
    return friendService.getAllfriends(name)

}

原文由 RIYAJ KHAN 发布,翻译遵循 CC BY-SA 3.0 许可协议

为什么它是未定义的?

您的函数 $scope.getAllFriends() 没有返回任何可以将数据设置为 $scope.friendsList 的内容。

 function myFunc(){
 var i = 5;
}
var myVar = myFunc();

myVar will not have value 5.

function myFunc(){
 var i = 5;
return i;
}
var myVar = myFunc();

在角度中,即使它是异步数据,当您设置为 $scope 数据到达后,角度也会更新您的视图和范围。

原文由 Jorawar Singh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏