渲染404,而不是在angularjs中重定向404

前端之家收集整理的这篇文章主要介绍了渲染404,而不是在angularjs中重定向404前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个很好的方法来渲染404页面,而不是在 angularjs重定向404页面.我发现许多解决方案都是重定向到另一个页面.它会创建一个问题,如果用户点击浏览器的返回按钮,我将创建另一个重定向404页面.所以我正在寻找一个代替404页面解决方案.

感谢您的阅读,我希望你们可以理解.

否则可能是您正在寻找的用途.
angular.module('MyApp',[])
.config(function($routeProvider) {
  $routeProvider.
    when('/',{templateUrl:'/home.html'}).
    // add as many as you want here...
    otherwise({templateUrl:'/404.html'}); // Render 404 view
});

更新:阅读更仔细的OP问题(对不起,很早就在这里),我想我有一个替代解决方案(实际上两个):

1)隐藏内容的ng视图的主UI的$scope变量

这要求您在您的视图中显示并在您的参数中解析,然后对其他控制器执行$emit,以告诉“嘿,这个人打了404,不显示你的观点”

$routeProvider.otherwise({
  controller: 'masterController',resolve: {
    404: function(){
      return true;
    };
  });

angular.module('MyApp',[])
.controller('masterController',function($scope,404) {
  $scope.isOn404 = 404
  ...
})

// In the view

<div ng-controller="masterController">
   <div ng-hide="isOn404">
    <!-- Actual content -->
   </div>
   <div ng-show="isOn404">
    <!-- 404 Page -->
   </div>
</div>

现在,这要求您拥有一个主控制器,可帮助您管理其余的UI.此外,您很可能需要执行一些编码来处理页面的其余部分,而不是仅使用ng-view(例如,显示当前标题,正文等的某些控制器).

2)自定义路由系统

我实际上已经为一个特定的项目做了这个:你有一个服务,设置一个“BackURL”和“FordwardURL”;每个$onRouteChange你存储你去哪里,你从哪里来;如果用户即将播放404,您仍然可以通过我的原始示例来呈现,但是当用户点击后,通过AngularJS捕获并渲染实际的“返回”页面.在这种情况下,我正在使用一个库,帮助我在移动设备上的路由名为Lungo和我公司使用的图书馆,即L.A.B(Lungo Angular Bridge).

猜你在找的Angularjs相关文章