zoukankan      html  css  js  c++  java
  • [AngularJS] Extract predicate methods into filters for ng-if and ng-show

    Leaking logic in controllers is not an option, filters are a way to refactor your code and are compatible with ng-if and ng-show.

        <div ng-if="main.currentUser | user:'isAdmin'">
          Admin div
        </div>
        <div ng-if="main.currentUser | user:'isntAdmin'">
          Standard user div
        </div>
    var app = angular.module('App', []);
    
    app.controller('MainCtrl', function() {
      var currentUser = { rights: [] };
      function setAdmin(){
        resetAdmin();
        currentUser.rights.push('admin');
      }
      function resetAdmin(){
        currentUser.rights = [];
      }
    
      this.currentUser = currentUser;
      this.setAdmin    = setAdmin;
      this.resetAdmin  = resetAdmin;
    });
    
    app.filter('user', function(){
      var rules = {
        isAdmin: function(user){
          return user.rights.indexOf('admin') !== -1;
        },
        isntAdmin: function(user){
          return !rules.isAdmin(user);
        }
      };
      
      return function(user, rule){
        return rules[rule](user);
      };
    });
  • 相关阅读:
    POI2014 洛谷P3574 FarmCraft 题解
    JZOJ 3468 OSU!题解
    sublime配置C++编译环境
    本地配置gitee
    数论基础
    HDU
    HDU-3033 I love sneakers! 题解
    HDU-4341 Gold miner 题解
    HDU
    MyBatis框架及原理分析
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4599080.html
Copyright © 2011-2022 走看看