javascript - 使用 ng-show 和 $window.onload 在页面加载后显示元素

标签 javascript html angularjs

我有一个如下所示的 mainController。我想在使用 ng-show 完成页面加载后显示一个 div。我的 $scope.windowLoaded 在页面加载后为 true,但是带有 ng-show 的 div 没有出现。

angular.module('myApp')
  .controller('mainController', function ($scope, $window) {

    $scope.windowLoaded = false;
    console.log('loading completed: ' + $scope.windowLoaded);
    $window.onload = function() {
      $scope.windowLoaded = true;
      console.log('loading completed: ' + $scope.windowLoaded);
    };

  });

html:

<div ng-show="windowLoaded == true">
    Show this div after pageload succeeded.
</div>

最佳答案

问题似乎是 ng-show="windowLoaded == 'true'"。您正在检查 windowLoaded 是否等于 truestring 而不是 bool 值。

替换为:

<div ng-show="windowLoaded == true">
    Show this div after pageload succeeded.
</div>

Working Example


如果此后问题仍然存在,请尝试将您的范围语句包装在 $timeout 中以确保它已应用:

$window.onload = function() {
    $timeout(function() {
        $scope.windowLoaded = true;
    });
};

记得将 $timeout 传递给您的 Controller 。

关于javascript - 使用 ng-show 和 $window.onload 在页面加载后显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150175/

相关文章:

css - 如何通过 iframe 嵌入调整大小的网站?

html - 使用 puppeteer 抓取表以获取特定数据

javascript - 字母不从表中查询

javascript - 如何在 Mongoose mapreduce 中调用相关模型

html - “切换”电话 : link on and off. .. 最好仅使用 CSS

javascript - UI-Router index.html 页面和特定状态的不同主页

javascript - 使用 Angular JS 加载 iframe src - 错误

javascript - 从 javascript 函数计算复选框数量

javascript - 如何将最大宽度设置为javascript弹出窗口

angularjs - Angular Gantt - 如何设置起始日期和截止日期范围以仅显示所需的分钟数?