gpt4 book ai didi

javascript - Angular.js API 调用 - 我应该使用工厂吗?

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:41 26 4
gpt4 key购买 nike

我正在开发一个 Electron 应用程序,使用 Trello API、Node.js(和 Node-Trello 包)和 Angular.js ( github repo )

用户授权其 Trello 应用程序后,我会保存一些个人资料数据;其中一些是所有 Trello 看板的 ID 列表。

我有一个 Controller 来处理显示他们的板列表。在此 Controller 中,我从数据库中提取板 ID 列表并获得一个类似于

的数组
["893482938480", "0938492830"]

然后我调用一个函数,将这个板 ID 数组传递给该函数,就像这样......

// get data for boards
$scope.get_board_data = function(boardIDArray) {
for(var i = 0; i < boardIDs.length; i++){
t.get("/1/boards/" + boardIDs[i], function(err, data) {
if (err) throw err;
board_info = data;
board_names.push(board_info['name']);
$scope.board_names = board_names;
//console.log($scope.board_names);
return $scope.board_names
});
}
}

$scope.board_array = $scope.get_board_data(boardIDs);

问题是,如果我 console.log $scope.board_names 在函数之外,那么我会得到 undefined。但是如果我登录该函数,那么我就会得到所需的数据。我有点卡在这里。任何帮助将不胜感激!

附:我也尝试过在 $scope.board_names 上使用 $watch,但我仍然遇到 undefined。这就是我尝试过的...

$scope.$watch('$scope.board_names', function(newValue, oldValue) {
console.log('$scope.board_array: ' + newValue);
});

编辑好吧,看来这段代码确实有效;我将 $scope.board_array = $scope.get_board_data(boardIDs); 更改为 $scope.get_board_data(boardIDs); 然后当我单击菜单项时, View 最终意识到有数据可供它使用。

新问题如何使 View 在页面加载时获取此数据?

这应该是一家工厂吗?这就是它们的用途吗?

最佳答案

我建议您不要使用普通工厂,而是使用 Resource 。它们是专门为处理 REST 调用而专门创建的工厂。查看this link请参阅下文了解更多信息。

不仅是专门为此制作的资源,而且还允许您创建一个集中式系统,使您可以根据需要轻松添加更多 REST 调用。

关于javascript - Angular.js API 调用 - 我应该使用工厂吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38271010/

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