如何根据angularjs中的条件重定向页面

时间:2017-01-04 14:07:45

标签: angularjs

我希望在用户登录后根据条件重定向页面“varView”标志将使用cookie或rootScope或任何其他选项具有一些值。在那之后,在进行路由的配置中,我必须检查标志,并根据标志的值页面进行重定向。

这是代码:

$routeProvider.when("/editTest/:testID",
{
  templateUrl: '/apps/templates/xyz/editTest.html',
               controller: 'EditTestController',
               resolve: {
    load: function (ShareData, $location) {
    var varView = 'tabPanelView'; // this value of varView will get loaded from login
    if (varView == 'tabPanelView') {
      $location.path('/editTestPageView.html');
    } else {
      $location.path('/editTestTabPanelView.html');
    }
    return ShareData.get('cEditTest');
  }
}
});

如果varView =='tabPanelView'然后在editTestPageView.html页面上重定向,则将其重定向到editTestTabPanelView.html。

实际上,我有一个带有两个差异的客户表单。视图(2个html文件),即具有正常页面可滚动且具有多个部分的一个,而另一个是在选项卡面板视图模式中,这是在不可滚动的选项卡中划分的部分。

因此,页面视图设置位于用户手中的管理区域中。用户将选择他想要的表单视图,并根据该页面打开。

3 个答案:

答案 0 :(得分:1)

可能会尝试将“userpreference”作为路径的一部分传递 例如:/ editTest /:testID /:varView 在routeProvider里面。

$routeProvider    
.when("/red/:testID/:varView", {        
    templateUrl: function(params) {         
    return params.varView == 'table'? "./pages/table.htm" : "./pages/scroll.htm";
  },controller  : 'aboutController'        
}) 

OR,可以使用

在HTML文件中的模板中包含模板
    <div ng-switch-when="1">  OR <ng-include src="subPage"></ng-include>

您可以查看以下答案:

using $rootScope in templateUrl function

答案 1 :(得分:1)

最后,结束传递url中的参数,如

'<a href="#/editTest/{{model._id}}/' + getCookie(escape('cformview'))+ '" title="Edit Test"></a>'

在$ routeProvider中

   $routeProvider.when("/editTest/:ID/:flagTab",
                        {                               
                             templateUrl: function (params) {
                                var flag = params.flagTab;                                    
                                if (flag == 'tabPanelView') {
                                    return '/apps/templates/editTest.html';
                                }
                                else {
                                    return '/apps/templates/editTestPageView.html';
                                }                                    
                            },
                            controller: 'EditTestController'
                        });

答案 2 :(得分:0)

您应该可以简单地使用$window服务。使用if条件,您可以使用$window.open去任何您喜欢的地方。如果这没有回答你的问题评论为什么,我会再试一次。您必须将路线放在open方法中。