美文网首页
使用城市三级联动

使用城市三级联动

作者: 小杰的简书 | 来源:发表于2018-05-17 16:39 被阅读0次

    ionic2-city-picker

    [图片上传失败...(image-bd0893-1526546372116)] [图片上传中...(image-c7f557-1526546372116-3)] [图片上传中...(image-ec1191-1526546372116-2)] [图片上传中...(image-cea26-1526546372116-1)]

    ionic2 的省市区选择插件 灵感(抄袭<g-emoji class="g-emoji" alias="smile" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f604.png" style="box-sizing: border-box; font-family: "Apple Color Emoji", "Segoe UI", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 18px; font-weight: 400; line-height: 20px; vertical-align: middle;">😄</g-emoji>)来自于

    https://github.com/raychenfj/ion-multi-pickerhttps://github.com/driftyco/ionic/blob/master/src/components/datetime/datetime.ts

    [图片上传失败...(image-800245-1526546372116)]

    Install

    npm install ionic2-city-picker --save

    Json 下载

    https://raw.githubusercontent.com/HsuanXyz/hsuanxyz.github.io/master/assets/ionic2-city-picker/city-data.json.zip

    Use

    import module

    import { NgModule, ErrorHandler } from '@angular/core';
    import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
    import { MyApp } from './app.component';
    ...
    import { CityPickerModule } from  "ionic2-city-picker"
    
    @NgModule({
      declarations: [
        MyApp,
        ...
      ],
      imports: [
        CityPickerModule,
        IonicModule.forRoot(MyApp)
      ],
      bootstrap: [IonicApp],
      entryComponents: [
        MyApp,
        ...
      ],
      providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}]
    })
    export class AppModule {}
    
    

    获取城市数据json服务

    import { Injectable } from '@angular/core';
    import { Http } from '@angular/http';
    import 'rxjs/add/operator/map';
    import 'rxjs/add/operator/toPromise';
    
    @Injectable()
    export class CityPickerService {
    
      constructor(public http: Http) {
        console.log('Hello CityPicker Provider');
      }
    
      getCitiesData(){
        return this.http.get('./assets/data/city-data.json')
          .toPromise()
          .then(response => response.json())
          .catch( err => {
            return Promise.reject(err)
          })
    
      }
    
    }
    
    

    视图控制器

    import { Component } from '@angular/core';
    
    import {NavController, NavParams} from 'ionic-angular';
    import {CityPickerService} from "../../providers/city-picker";
    
    @Component({
      selector: 'page-home',
      templateUrl: 'home.html'
    })
    export class HomePage {
      cityData: any[]; //城市数据
      cityName:string = '北京市-北京市-东城区'; //初始化城市名
      code:string; //城市编码
      constructor(
        public navCtrl: NavController,
        public cityPickerSev: CityPickerService,
        public navParams: NavParams
      ) {
    
        this.setCityPickerData();
      }
    
      /**
       * 获取城市数据
       */
      setCityPickerData(){
        this.cityPickerSev.getCitiesData()
          .then( data => {
            this.cityData = data;
          });
      }
    
      /**
       * 城市选择器被改变时触发的事件
       * @param event
       */
      cityChange(event){
        console.log(event);
        this.code = event['region'].value
      }
    }
    
    

    视图

    <ion-header>
      <ion-navbar>
        <ion-title>选择城市</ion-title>
      </ion-navbar>
    </ion-header>
    
    <ion-content padding>
    
      <ion-item>
        <ion-label>省市区选择器</ion-label>
        <city-picker item-content
                     [cancelText]="'取消'"
                     [doneText]="'完成'"
                     [separator]="'-'"
                     [citiesData]="cityData"
                     [(ngModel)]="cityName"
                     (ionChange)="cityChange($event)">
    
        </city-picker>
      </ion-item>
      <p>地区编码:  {{code}}
      </p>
    
    </ion-content>
    
    

    输入属性

    名称 类型 默认 描述
    citiesData CityPickerColumn 城市数据
    separator string ' ' 分隔符
    doneText string 'done' 完成文字
    cancelText string 'cancel' 取消文字

    CityPickerColumn

    key 类型 描述
    name string 名称
    code string 地区编码
    children CityPickerColumn 子级

    输出事件

    名称 描述
    ionChange 城市选择器被改变时触发的事件

    相关文章

      网友评论

          本文标题:使用城市三级联动

          本文链接:https://www.haomeiwen.com/subject/uutidftx.html