AngularJS重定向闪烁以前的模板

时间:2013-12-21 20:18:18

标签: javascript angularjs angularjs-routing

这个问题已被问过几次没有正确答案,所以希望这个问题/答案可以解决许多人的问题。

基本上我有一个附加到我的路线的解决方案对象,如下:

$routeProvider
  .when('/',
  {
      templateUrl: "html/landing.html",
      controller: "LandingController",
      resolve: {
          app: function ($q, $location) {
              var defer = $q.defer();
              var next = "landing";
              checkRedirect(defer, $location, next);
              return defer.promise;
          }
      }
  });

checkRedirect函数执行了几次AJAX次调用,可能会更改$location,如下所示:

$location.path("/home");

一切都按预期工作但由于某种原因发生重定向时,旧路线中的模板在重定向和渲染正确模板之前会瞬间闪烁一秒钟。

1 个答案:

答案 0 :(得分:0)

这是一个黑客,它基本上隐藏了旧模板闪烁的“瞬间”的身体。但是,如果某人有实际解决方案,请分享。

$rootScope.$on('$locationChangeStart', function (event) {
    $('body').hide();
    setTimeout(function () {
        $('body').show();
    }, 100);
});