• angular json 解析和数据处理


    ...

    html

    <d-button (btnClick)="HuGet()">huzh Get</d-button>
    
    <h5 class="text-muted">Standard: Single Select</h5>
    <div class="row">
      <div class="col-md-5" style="font-size: 0">
        <d-tree-select
          placeholder="Standard Input"
          [treeData]="data1"
          [expandTree]="true"
          [(ngModel)]="value1"
          (valueChanged)="valueChanged($event)"
          (ngModelChange)="showSelected($event)"
          style=" 280px"
        ></d-tree-select>
      </div>
    </div>
    

    ts

    import {Component, OnInit} from '@angular/core';
    import {HttpClient} from '@angular/common/http';
    import {DValidateRules} from 'ng-devui/form';
    import {of} from 'rxjs';
    import {delay, map} from 'rxjs/operators';
    
    
    interface Ihu {
      title: string;
      id: string;
    }
    
    interface IIhu extends Ihu {
      title: string;
      children: Ihu[];
      id: string;
    }
    
    
    interface IIIhu {
      data: {
        sections: [
          {
            sectionId: string,
            name: string,
            items: [
              {
                id: string,
                name: string,
              }
            ]
          }
        ]
      };
    }
    
    
    @Component({
      selector: 'app-huzh',
      templateUrl: './huzh.component.html',
      styleUrls: ['./huzh.component.scss']
    })
    export class HuzhComponent implements OnInit {
      ngOnInit() {
        console.log('huzh');     // 传入的数据
        this.HuGet();
      }
    
      Idd: Ihu = {title: '', id: ''};
      IIdd: IIhu = {title: '', children: [], id: ''};
      data2 = [];
      data1 = [];
      value1 = {
        'title': 'g1s1',
        'id': '1'
      };
    
      // 固定值,直接推给 data1, 没有问题,测试数据
      // data3 = {
      //   'data': {
      //     'projectId': '089ebe99-6360-41a6-bdfd-847ae77e6c0a',
      //     'appId': '7a519829-414d-47c7-82e8-ee3ae0be4690',
      //     'name': 'huzh-测试',
      //     'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/0_lego.svg',
      //     'color': '#00bcd4',
      //     'desc': '',
      //     'sections': [
      //       {
      //         'sectionId': '11',
      //         'name': 'g1',
      //         'items': [
      //           {
      //             'id': '22',
      //             'name': 'g1s1',
      //             'type': 0,
      //             'iconUrl': 'https://coopera.xxx.com:443/file/mdpub/customIcon/hr_workbench.svg',
      //             'status': 1
      //           },
      //           {
      //             'id': '33',
      //             'name': 'g1s2',
      //             'type': 0,
      //             'iconUrl': 'https://cooper.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
      //             'status': 1
      //           }
      //         ]
      //       },
      //       {
      //         'sectionId': '44',
      //         'name': 'g2',
      //         'items': [
      //           {
      //             'id': '55',
      //             'name': 'g2s1',
      //             'type': 0,
      //             'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
      //             'status': 1
      //           },
      //           {
      //             'id': 'hu66',
      //             'name': 'g2s2',
      //             'type': 0,
      //             'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
      //             'status': 1
      //           }
      //         ]
      //       }
      //     ]
      //   },
      //   'success': true,
      //   'error_code': 1
      // };
    
      ddd: IIIhu = {
        data: {
          sections: [
            {
              sectionId: '',
              name: '',
              items: [
                {
                  id: '',
                  name: '',
                }
              ]
            }
          ]
        }
      };
    
      constructor(private http: HttpClient) {
      }
    
    
      HuGet(): void {
        // 先用变量接住http resp,再赋值
        // devui的接口需要传定值,http 直接获取的值如果push到 data1中,显示不了数据
        // this.http.get<IIIhu> 这种写法可能是必须的,可以直接在resp中使用 '.propertie' 访问,否则报错
        // 先定类型,在处理
        console.log('hello');
    this.http.get<IIIhu>('http://127.0.0.1:4200/api/v1/open/app/get?appKey=b5e55ba6e1&sign=ZjBhMjdjMjM3O假的GI3NGI5ZwZWQwZTI5OTc0NjNkYWNhNjU0ZjAzMGRiMzc5MzZ0MDc5OTE1NA==').subscribe( (data: IIIhu) => { this.ddd = { data: { sections: [ { sectionId: '', name: '', items: [ { id: '', name: '', } ] } ] } }; this.ddd = data; console.log('now ddd=>', this.ddd); //置空否则点击按钮,否则一直增加 this.data1 = []; this.data2 = []; this.ddd.data.sections.forEach( (value, index, array) => { this.IIdd = { id: '', title: '', children: [] }; this.IIdd.title = value.name; this.IIdd.id = value.sectionId; value.items.forEach( (value2, index1, array1) => { this.Idd = {id: '', title: ''}; this.Idd.title = value2.name; this.Idd.id = value2.id; this.IIdd.children.push(this.Idd); } ); this.data2.push(this.IIdd); } ); console.log('after'); console.log('last', this.data2); this.data1 = this.data2; } ); } // 接data3 // HuD(): void { // this.data1 = []; // for (const item of this.data3.data.sections) { // this.IIdd = { // id: '', // title: '', // children: [] // }; // this.IIdd.title = item.name; // this.IIdd.id = item.sectionId; // const va = item; // for (let emm of va.items) { // this.Idd = {id: '', title: ''}; // const mm = emm; // console.log('emm===>', mm); // this.Idd.id = mm.id; // this.Idd.title = mm.name; // this.IIdd.children.push(this.Idd); // } // this.data1.push(this.IIdd); // console.log(this.data1); // } // } // showSelected($event: Event) { console.log('event emitted: ', $event); } valueChanged($event) { console.log('value changed:', $event); } // }

      

  • 相关阅读:
    Openvswitch手册(6): QoS
    [转]linux VLAN配置(vconfig)
    [转]Understand QoS at OpenSwitch
    Openvswitch手册(5): VLAN and Bonding
    Openvswitch手册(4): Mirror
    Openvswitch手册(3): sFlow, netFlow
    Mysql主从复制(重置版)
    Mysql备份工具Xtrabackup
    Mysql用户管理
    Mysql备份工具mysqldump和mysqlhotcopy
  • 原文地址:https://www.cnblogs.com/eiguleo/p/14811501.html
Copyright © 2020-2023  润新知