【发布时间】:2016-07-05 05:51:07
【问题描述】:
我正在尝试使用 Angular JS 显示或隐藏基于 Spring 安全角色的 HTML 元素。 为此,我创建了一个服务和指令。 我正在从服务器取回数据,但我无法访问我在服务中获得的数据。这是我的代码
app.service('MyService', function($http, $rootScope) {
this.data = [];
var _this = this;
$http.get('permissions').then(function data(response) {
_this.data=response.data;
console.log(response);
$rootScope.$broadcast('MyServiceReady');
})
/* return {
permissionData: function(){
return _this.data;
}
}*/
})
app.directive('allowed', [ 'MyService', function(MyService) {
return function(scope, element, attr) {
scope.$on('MyServiceReady', function() {
$subScope = this;
$subScope.status = false;
$subScope.permissions=MyService.data;
console.log(MyService.data);
console.log("First:" + $subScope.status+" permission:"+attr.allowed);
angular.forEach(permissions, function(item) {
if (angular.equals(item, attr.allowed)) {
$subScope.status = true;
}
});
console.log("last:" + $subScope.status);
console.log(element);
if (!$subScope.status) {
$(element).hide();
} else {
$(element).show();
}
});
};
} ]);
我尝试在服务中编写一个函数并访问它,但即便如此它也显示 MyService.permissionData 不是一个函数。 谁能解释我哪里出错了?
我正在尝试在上面的代码中执行三个任务。
从服务器获取 Permissions 数组
在获得数据之前不要创建指令。
根据权限隐藏或显示元素。
我的 HTML 代码是:
<button class="btn btn-primary" allowed="1002">ADD SOMETHING</button>
如果您有任何建议,请回复。
【问题讨论】:
标签: angularjs spring-mvc spring-security