Ответ 1
Я бы установил свойства в области $в объекте доступа пользователей какого-либо типа, чтобы переключать их при загрузке пользователя.
Предполагая, что пользователь загружается, когда контроллер это может быть примерно так:
app.controller('SecuredForm', function($scope) {
//get your user from where ever.
var user = getSomeUser();
// set your user permissions
// here some contrived example.
$scope.permissions = {
showAdmin: user.isRegistered && user.isAdmin,
showBasic: user.isRegistered,
showHelp: !user.isBanned
}
});
В вашем html вы будете использовать эти элементы области, чтобы показывать или скрывать свои области:
<div ng-show="permissions.showAdmin">
<h3>Admin Area</h3>
<!-- admin stuff here -->
</div>
<div ng-show="permissions.showBasic">
<h3>Basic Info</h3>
<!-- admin stuff here -->
</div>
<div ng-show="permissions.showHelp">
<h3>Help</h3>
<!-- help stuff here -->
</div>
Следует отметить, что ng-show и ng-hide просто не отображают HTML... html все еще находится на клиенте. Поэтому будьте уверены, что когда вы делаете обратные вызовы на сервер, для которых требуются разрешения для изменения того, что вы проверяете на сервере. Вы не можете предположить, что у пользователя есть разрешение сделать что-то только потому, что форма была видна. (Вы, наверное, уже знаете это, я просто хочу быть основательным).