我想了解最佳实践,即如何在AngularJS中设置路由和模板,以向访问者显示不同的前台和登录区域,然后显示仪表板以在相同的基本URL(’/’)上登录用户。
这两页在结构上完全不同,并且还需要不同的资产。
为网站的两个部分设置两个不同的应用程序是否更好,但是我将如何管理这两个部分之间的会话?
还是在主体标签之间没有任何内容的“空”布局将不同的模板加载到其中,并为前部分和仪表板部分进行单独的布线,这更好?
我正在寻找一种类似于Facebook登录的方式。登录后留在根域中。
我度过了一个下午的时间,在Google上搜寻并搜寻了类似内容,但找不到任何相关的指南。非常欢迎您提出通常在AngularJS中进行这种分离的任何想法。
Martin的回答很好,但是我宁愿使用ui-router模块解决问题:
root
,dashboard
和landing
。root
状态捕获URL,然后重定向到授权状态dashboard
或landing
取决于授权状态。dashboard
并且landing
将controller
和templateUrl
在一个地方与其他应用程序的状态,这是很好的一起定义。代码示例:
angular
.module("app", ["ui.router"])
.value("user", {
name: "Bob",
id: 1,
loggedIn: true
})
.config(function($stateProvider) {
$stateProvider
.state("root", {
url: "",
template: "<section ui-view></section>",
controller: function($state, user) {
if ($state.is("root")) $state.go(user.loggedIn ? "dashboard" : "landing");
}
})
.state("landing", {
templateUrl: "landing.html",
controller: "LandingCtrl"
})
.state("dashboard", {
templateUrl: "dashboard.html",
controller: "DashboardCtrl"
});
})
.controller("DashboardCtrl", function($scope, user, $state) {
$scope.logout = function() {
user.loggedIn = false;
$state.go("root");
}
})
.controller("LandingCtrl", function($scope, user, $state) {
$scope.login = function() {
user.loggedIn = true;
$state.go("root");
}
})
关于Plunker的完整示例。
问题内容: 我的应用程序的登录页面有两种状态:,。现在,我想在同一URL上显示这两种状态,但让控制器和模板取决于用户会话(用户是否登录?)。 有没有办法做到这一点? 问题答案: 您可以有一个基本状态来控制要加载的状态,并且可以简单地让声明该基本状态的子级没有url: 现在,在基本状态()的控制器中,您可以检查用户是否已登录,并用于加载适当的状态。 编辑 如所承诺的那样,正在努力工作。
使用基于表单的JAAS、MySQL、Apache TomEE、JSP、Servlet 我知道如何配置基于表单的JAAS,当用户试图访问安全页面时,自动将用户重定向到登录页面。基本上,我已经为TomEE和MySQL配置了JDBC领域(在文件中),在中,我已经声明了、和。 然后,有以下登录表单: 而且,这对于在web.xml中的标记中声明的页面很好。 但是,我想有明确的访问一个页面,用户可以登录。那么
我知道useState是异步的。回答前请阅读完整问题。 我试图用修改数组中的一个元素,但它没有按预期工作。 数组和修改它的函数: 因为是异步的,所以我知道数组可能不会立即更改,但是,在函数内部,即使经过几次重新渲染,结果也是相同的。 而不是: 我这样做: 然后在控制台内更新状态。在函数中生成日志,但没有重新渲染/组件更新。 我想了解为什么在第一种情况下在控制台的函数中。多次重新渲染后,日志结果相同
在woocommerce中,类别和产品是否可能有相同的基本url?目前,它给我的分类页面一个404,但产品运行良好。 我想做的是,两者都有基本的“商店”类别:demo。com/商店/类别/产品:演示。com/商店/类别/产品名称
问题内容: 我的logback.xml中有这个添加器 因此,目前我将所有日志保存到一个文件中。如何使它像一个文件仅保存错误日志,而另一个文件保存所有其他日志? 我想在代码中仅使用1个logger实例,如下所示: 问题答案: 开始寻找logback类别,找到过滤器。 只需将过滤器说明添加到您的附加程序即可:
问题内容: $ resource非常棒,它提供了非常方便的方式来处理Web服务。如果必须在不同的URL上执行GET和POST怎么办? 例如,GET URL是, 而POST URL 没有任何参数 问题答案: 您应该能够将URL作为参数公开。我能够做到这一点: 然后,您可以覆盖通话中的URL 。 在我的简短测试中发现的一个警告是,如果我将URL字符串包含在内,则该字符串将无法正常工作。我没有收到错误消