Немного нова для Angular и javascript. У меня есть следующий контроллер, который использует фабричную службу для доступа к локальному файлу JSON. Большая часть этого кода получается (или полностью взята) от this post by Dan Wahlin. Я не могу получить доступ к переменной $ scope.books вне функции и не могу понять, почему. Консоль.log внутри функции дает мне объект, который я ищу, но один внешний возвращает undefined. Что я здесь делаю неправильно? Благодарю.
app.controller('FormController', ['$scope', 'tocFactory', function ($scope, tocFactory) {
$scope.books;
getBooks();
function getBooks() {
tocFactory.getBooks().
success(function(data, status, headers, config) {
$scope.books = data;
console.log($scope.books);
}).
error(function(data, status, headers, config) {
// log error
})
}
console.log($scope.books);
}]);
Все в порядке, console.log внутри 'success' возвращает правильный объект. Добро пожаловать в мир асинхронных методов. –
Я думаю, это зависит от вашего определения OK. Я не могу привязываться к нему в своем HTML или использовать его в других частях моего контроллера в его текущей форме. Как я могу сделать это так, чтобы я мог? – GMarsh
Весь смысл привязки данных для пользовательского интерфейса заключается в том, что всякий раз, когда ваши данные изменяются, пользовательский интерфейс автоматически отражает это. Ваши привязки не должны быть прав. –