[AngularJS]无法获取设置里面 $scope 的值

发布时间: 2017/4/16 21:08:04
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在我 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
}

解决方法 1:

$scope.$应用将在以后的周期作为您的代码执行。所以 $scope.dataObj 将是不确定 (因为初始化 '$scope.dataObj;') 和 $scope.$apply 将运行后当前第周期。

我不知道你想要转让后, 做什么但守望者也许会帮助你吗?

$scope.$watch('dataObj', function(){
   console.log($scope.dataObj);
});

角的生命周期的更多信息︰ http://onehungrymind.com/notes-on-angularjs-scope-life-cycle/

赞助商