根据条件(Angularjs)允许用户访问URL
Give user access to URL based on condition (Angularjs)
这是下面stakoverflow问题的延续
为相同<设置不同的超链接;a>标签(使用AngularJs)
我有两个URL,如下所示。Pre.html和Block.html
<ul class="dropdown-menu">
<li><a ng-model="data" ng-href="{{ data ? 'Pre.html' : 'Block.html' }}" target="_blank">Pre or Bloc</a></li>
</ul>
这基本上是检查控制器中数据的值,如果$scope.data为true,则加载Pre.html。如果$scope.data为false,它将加载Block.html。
因此,有了这个,我可以实现以下
1) 用户点击链接。如果控制器的"数据"值为假,则向用户显示块页面
2) 用户点击链接。如果控制器上的"data"值为true,则会向用户显示pre.html页面。
但是,当用户在URL中键入链接时,即使$scope.data设置为false,他仍然可以访问Pre.html。
当$scope.data设置为false时,我如何阻止此URL访问。>任何建议
这是不可能实现的,因为当用户自己输入URL时;您的$scope发生更改,无法再访问。
一种解决方法是在$window变量中设置值;这可以从您为Pre.html定义的控制器进行ping。
例如:
var controllers = angular.module('controllers', []);
controllers.controller('PageCtrl', [ '$scope', '$window', $location, function($scope, $window, $location) {
if (some condition) {
$window.sessionStorage.data = true
} else {
$window.sessionStorage.data = false
}
}
如果条件为false,只需将用户重定向回上一页或默认主页即可。
controllers.controller('PreCtrl', [ '$scope', '$window', $location, function($scope, $window, $location) {
if ($window.sessionStorage.data) {
// Do something?
} else {
$location.path('#/home');
}
}
相关文章:
- 如何将链接状态设置为在用户访问另一个页面之前保持
- AngularJS:阻止用户访问某个状态
- 如何在angularjs应用程序中注销后,通过浏览器后退按钮禁止用户访问上一页
- 根据条件(Angularjs)允许用户访问URL
- 如何限制用户访问ExpressJS/NodeJS中的静态html文件
- 如何获取用户访问令牌,与图形 API 资源管理器中使用的令牌相同
- 如何获取用户访问的任何新网站的 URL
- 如何检测用户访问的外部网站
- 阻止用户访问资源文件夹中的文件.托管在Apache Tomcat上
- 如果用户访问了一个目录中的n个页面,则打开弹出窗口
- 如何在没有用户访问页面的情况下运行php代码
- 是否可以延迟用户访问的第一个页面上的元素加载
- 正确处理个人用户访问
- 我可以安全地限制桌面用户访问我的移动网站吗
- 如何使html表格单元格信息只能由输入信息的用户访问
- 如何阻止opera mini用户访问我的网站
- 当用户访问特定站点时,Firefox会自动重定向
- 用户访问令牌格式错误
- Node.js检测用户访问的每个页面的req中是否存在变量
- 如何判断每个用户访问每个页面的时间