В моем приложении angularjs у меня есть следующий блок, который ведет себя странно.
Я объявил переменную в функциональном блоке, но не смог получить доступ к значениям, несмотря на установку значения внутри функционального блока. Где я ошибаюсь.
$scope.submitForm = function (isValid) {
var file = $scope.myFile;
var contents;
$scope.dataObj;
if (file) {
var r = new FileReader();
r.onload = function (e) {
console.log('Inside the file function ....');
contents = e.target.result;
$scope.$apply(function() {
$scope.fileReader = contents;
contents = contents.replace(/\r\n+/g, ",");
$scope.dataObj = {hosts: contents};
console.log($scope.dataObj); // prints the value twice
});
};
r.readAsText(file);
}
console.log("Printing the data objects .... ");
console.log($scope.dataObj); // prints undefined
}
Вы спрашиваете, почему console.log ($ scope.dataObj); печатает undefined вне if (file) {...}? –
Да. console.log ($ scope.dataObj); печать не определена. Насколько я понимаю, в javascript у нас есть область функций. поэтому, даже если переменная определена в верхней части функции, если мы установим значение, мы сможем получить последнее значение после назначения. – zilcuanu