File

src/app/pipe/props.pipe.ts

Metadata

Name props

Methods

Public transform
transform(props: any)
Parameters :
Name Type Optional
props any No
Returns : any
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'props',
})
export class PropsPipe implements PipeTransform {

  // 解析组件属性到ngClass
  public transform(props: any): any {
    const ngClass: any = {};

    // 通用属性:字体大小
    if (props.size) {
      for (let i = 8; i <= 40; i++) {
        if (props.size === i) { ngClass['size' + i] = true; }
      }
    }

    // 通用属性:对其方式
    ngClass.center = props.headStyle === 'center';
    ngClass['left-align'] = props.headStyle === 'left-align';
    ngClass['right-align'] = props.headStyle === 'right-align';

    // 通用属性:指定设备隐藏
    ngClass['xs-hide'] = props.hideCls === 'xs-hide';
    ngClass['sm-hide md-hide lg-hide'] = props.hideCls === 'sm-hide md-hide lg-hide';

    // 通用属性:行间距为0(上下外边距均为0)
    ngClass['icht-mb0'] = props.marginSetting === 'marginZero';

    // 通用属性:上(内)边距
    if (props.paddingTop) {
      for (let i = 0; i <= 10; i++) {
        if (props.paddingTop === i) { ngClass['icht-pt' + i] = true; }
      }
    }

    // 通用属性:下(内)边距
    if (props.paddingBottom) {
      for (let i = 0; i <= 10; i++) {
        if (props.paddingBottom === i) { ngClass['icht-pb' + i] = true; }
      }
    }

    // 通用属性:背景图
    ngClass['icht-bg-gray'] = props.bg === 'bgGray bgGrayMin';
    ngClass['icht-bg-gray-max'] = props.bg === 'bgGray';
    ngClass['icht-bg-gray-max-arrow'] = props.bg === 'bgGray bgGrayDown';

    // 标题:前置图标
    ngClass['hicon-light'] = props.icon === 'hicon-light';

    return ngClass;
  }

}

result-matching ""

    No results matching ""