ある種のユーザーアクセスオブジェクトの$scopeにプロパティを設定して、ユーザーをロードするたびにプロパティを切り替えます。
コントローラがロードされているときにユーザーがロードされていると仮定すると、次のようになります。
app.controller('SecuredForm', function($scope) {
//get your user from where ever.
var user = getSomeUser();
// set your user permissions
// here's 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>
注意すべき点の1つは、ng-showとng-hideが単にHTMLを表示していないことです...htmlはまだクライアント上にあります。したがって、サーバーにコールバックするときは、サーバーでチェックしているものを変更するためのアクセス許可が必要であることを確認してください。フォームが表示されたという理由だけで、ユーザーが何かを行う権限を持っていると想定することはできません。(あなたはおそらくすでにこれを知っています、私はただ徹底したいです)。