【问题标题】:$scope.$apply() not working after state navigation$scope.$apply() 在状态导航后不起作用
【发布时间】:2019-08-26 21:10:42
【问题描述】:

我正在使用cordova插件打开一个外部url并下载pdf,这将在代码中分配一个对象,这在ui中显示为文件的图标。

这在常规流程中运行良好。如果我进入下一个状态(使用 $state.go)并返回上一个屏幕并尝试做同样的事情(下载 pdf 文件),UI 不会更新但对象已分配。

我用过 $scope.$apply();用于更新 DOM。但不工作

使用promise划分函数来实现。但不工作

window.resolveLocalFileSystemURL(destDir, function (drootDir) {
              console.log('Access to the dest directory granted succesfully');
              drootDir.getDirectory(destFolder, {
                create: true
              }, function (ddir) {
                file.moveTo(ddir, destFileName, function () {
                  $scope.mainobject.pdfFile = {
                    'rootPath': destDir,
                    'folderPath': destFolder,
                    'fileName': destFileName
                  };
                  $scope.$apply();
                });
              });
            });

【问题讨论】:

  • 如果分配的对象使图标出现,则在加载控制器后尝试再次运行$scope.$apply()。如果您收到摘要错误,请尝试将其放入 setTimeout()
  • 我已经尝试过您的解决方案。但它没有工作

标签: javascript html angularjs cordova


【解决方案1】:

尝试使用$timeout 函数更新角度元素。 包括在$timeout 函数中分配对象。

【讨论】:

    猜你喜欢
    • 2016-08-31
    • 1970-01-01
    • 2014-08-22
    • 2016-08-04
    • 1970-01-01
    • 2015-11-17
    • 2014-12-31
    • 2014-01-03
    相关资源
    最近更新 更多