Leaking logic in controllers isn't a option, filters is a-a-refactor your code and is-compatible with NG-IF and n G-show.
<ng-if= "main.currentuser | User: ' isadmin '"> Admin Div </div> <ng-if= " Main.currentuser | User: ' Isntadmin '>standard user div</Div >
varApp = Angular.module (' app ', []); App.controller (' Mainctrl ',function() { varCurrentUser ={rights: []}; functionsetadmin () {resetadmin (); CurrentUser.rights.push (' Admin '); } functionresetadmin () {currentuser.rights= []; } This. CurrentUser =CurrentUser; This. Setadmin =setadmin; This. Resetadmin =resetadmin;}); App.filter (' User ',function(){ varRules ={isadmin:function(user) {returnUser.rights.indexOf (' admin ')!==-1; }, Isntadmin:function(user) {return!rules.isadmin (user); } }; return function(user, rule) {returnRules[rule] (user); };});
[AngularJS] Extract predicate methods into filters for Ng-if and Ng-show