【发布时间】:2016-07-14 04:02:31
【问题描述】:
我有两个模板,分别是 a.html 和 b.html。现在a.html 用于登录用户,b.html 用于未登录用户。身份验证是通过在单独的子域上运行的 api 进行的。现在我有一个电话告诉一个人是否在范围内进行了身份验证。
我怎样才能有选择地加载基于此的模板。一种方法是我加载b.html 并有条件地重定向经过身份验证的用户,但这不是我想要的。
这是我的 ngRoute 代码
var app = angular.module('app',['ngRoute']);
app.config(function ($routeProvider,$locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/',{
templateUrl : '/templates/b.html',
controller : 'mainController'
})
.otherwise({
templateUrl : 'templates/404.html',
controller : 'mainController'
});
});
app.controller('mainController', function($scope) {
});
【问题讨论】:
-
条件路由是否适用?或者你是否有必要这两个模板必须共享相同的路径(浏览器地址栏中的相同 url)?
-
网址必须相同。两者都在“/”上。我没有明白你所说的条件路由的意思。仅供参考,角度应用程序是 jekyll,所以那里没有变化。子域上的 Api 是 django
-
好吧,如果我理解你的话,你要求你不想先加载
b.html然后重定向,但你是通过 api 进行身份验证。这是否意味着您希望以某种方式阻止您的 Angular 应用程序显示或更改路线,直到身份验证完成? -
@MMhunter 是的。它将令牌发送到服务器并获取用户的状态。如果他通过了身份验证,则 a.html 否则为 b.html :)