我在AngularJS應用解決權利......我想使用自定義指令解決哪些用戶可以通過他的作用看。這只是客戶端設計。如果用戶在頁面上輸入了他沒有訪問的內容,則服務器返回403以查看來自該頁面的所有數據請求。 我實際的解決方案是這樣的:高級操縱DOM在AngularJS指令
<li ng-repeat="menuItem in navigationItems" class='{{menuItem.css}}' restrict-access="menuItem.restrict"> <a href="#/{{menuItem.url}}"> <div class="label"> <span class="icon"> <span class="title">{{menuItem.title}}</span> </span> </div> </a> </li>
.directive('restrictAccess', function() {
return {
restrict: 'EA',
prioriry: 100000,
scope: {
restrictAccess: "=restrictAccess"
},
controller: ['$scope', '$element', function($scope, $element) {
var accessDenied = true;
var userRole = App.LoggedUser.userRole;
var attributes = $scope.restrictAccess.split(" ");
for (var i in attributes) {
if (userRole == attributes[i]) {
accessDenied = false;
}
}
if (accessDenied) {
$element.remove();
}
}]
};
})
存在諸多問題......通過渲染小部件的
控制器NG-包括比我更快的指令和一些Ajax請求sended在從DOM中移除小部件之前將其發送到服務器。 我需要指令什麼停止控制器在他們的子元素。
我希望這是可以理解的......這裏是測試Fiddle
感謝大衛
那麼豈不是更好了補充一點,如果用戶擁有,而不是當他不刪除它的權利? – zeroflagL
你有樣品嗎? –