我在JSP页面上有一个角度应用程序:
ng-init="role='<%=String.valueOf(session.getAttribute("role"))%>'"
当JSP从会话中提取角色属性时,body标签将如下所示:
<body ng-app="appName" ng-init="role='roleName'">
我想访问role
中的$routeProvider
变量。
我尝试将$scope
传递给app.config
函数:
app.config(['$routeProvider', '$scope',
function ($routeProvider, $scope) {
$routeProvider
.when('somePath' {
...
})
.when('someOtherPath' {
...
})
.otherwise({
redirectTo: $scope.role == 'goodRole' ? 'somePath' : 'someOtherPath'
});
}]);
但是,您似乎无法以$scope
方式传递。
有没有办法以这种方式访问范围变量,还是有其他方法可以实现这一目标?
答案 0 :(得分:1)
不,这是不可能的,因为configuration phase(服务是创建和配置的)在运行阶段之前发生(控制器运行,渲染指令,范围链接)。< / p>
在您的情况下,您可能希望创建全局变量并从配置块访问它。在这种情况下,你真的没有很多选择。 同时检查this answer我提供了有关将全局变量配置注入Angular应用程序的类似主题。
答案 1 :(得分:1)
不,这是不可能的。如何将其设置为data-role
属性并从document.body.dataset.role
获取
data-role="<%=String.valueOf(session.getAttribute("role"))%>"