如何在路由中切换视图?我们可以在routeProvider的templateUrl中调用指令吗?

时间:2017-01-05 11:56:10

标签: angularjs angularjs-routing

我想在路由时根据标志切换视图(标记将在用户登录cookie时设置)。

类似的东西:

$routeProvider.when("/editTest/:ID",
                       {                              
                           templateUrl: 
                               {
                                   load: function (pageView, $location) {
                                       return pageView.get();
                                   }
                               },
                           controller: 'EditTestController'
                       });

指令:

DashboardModule.factory("pageView", function ($http, $cookieStore, $rootScope, $timeout) {
return {
    get: function () {
        $rootScope.formView = $cookieStore.get("cformview");
        if ($rootScope.formView == "tabView") {
            window.location = '/apps/templates/editTest.html';
        }
        else {
            window.location = '/apps/templates/editTestPageView.html';
        }
    }
};});

因此,当用户登录并点击链接时,页面将根据标记重定向或打开。

1 个答案:

答案 0 :(得分:0)

我通过使用来自" templateUrl"中的路线para的标志来解决它。像一个条件。在条件基础上,做了路由。

    $routeProvider.when('/PageManifest/:flagTab',
               {
                   resolve: {
                       load: function (ShareData, $location) {
                           return ShareData.getPermission('GetPerCookie');
                       }
                   },

                   templateUrl: function (params) {
                       return params.flagTab == 'flagValue' ? "tabView.html" : "pageView.html";
                   },
                   controller: 'PageController'
               });