Я работаю над приложением Electron, используя Trello API, Node.js (и пакет Node-Trello) и Angular.js (репозиторий github)
После того, как пользователь авторизует свое приложение Trello, я сохраняю некоторые данные профиля; некоторые из них представляют собой список идентификаторов всех их досок Trello.
У меня есть контроллер, который отображает список плат. В этом контроллере я извлекаю список идентификаторов плат из БД и получаю массив вроде
["893482938480", "0938492830"]
а затем я вызываю функцию, которой я передаю этот массив идентификаторов плат, например...
// 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
. НО если я войду внутрь функции, то получу нужные данные. Я немного застрял здесь. Любая помощь будет принята с благодарностью!
p.s. Я также пытался использовать $watch
для $scope.board_names, но все равно получаю 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);
, а затем, когда я нажимаю на пункт меню, представление, наконец, понимает, что есть данные для его использования.
Новый вопрос, как заставить представление получать эти данные при загрузке страницы?
Это должен быть завод? это то, для чего они используются?
t.get
— это объект Trello, созданный пакетом node-trello. - person Banjerr   schedule 08.07.2016