Ionic3学习笔记(十一)实现省市区三级联动
本文为原创文章,转载请标明出处
目录
- 安装
ion-multi-picker - 导入
app.module.ts - 创建 provider
- 创建 page
- 一个坑
- 更多
- 效果图
1. 安装 ion-multi-picker
终端运行:
npm install ion-multi-picker@2.1.0 --save
2. 导入 app.module.ts
...
import {MultiPickerModule} from 'ion-multi-picker';
...
@NgModule({
...
imports: [
...
MultiPickerModule,
...
]
...
})
...
3. 创建 provider
终端运行:
ionic g provider city-data
省市区json文件下载地址:
https://raw.githubusercontent.com/raychenfj/ion-multi-picker/master/example/src/assets/chinese-cities.json
将json值赋给下面的 cities 变量即可。
city-data.ts:
import {Injectable} from '@angular/core';
@Injectable()
export class CityDataProvider {
cities: any[];
constructor() {
this.cities = 上面的json(太长我就不复制粘贴了)
}
}
4. 创建 page
终端运行:
ionic g page edit
edit.html
<ion-header>
<ion-navbar>
<ion-title>编辑</ion-title>
<ion-buttons end>
<button ion-button>保存</button>
</ion-buttons>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<ion-item>
<ion-icon name="pin" item-start></ion-icon>
<ion-label>居住地</ion-label>
<ion-multi-picker item-content [multiPickerColumns]="cityColumns" [cancelText]="'取消'" [doneText]="'完成'"></ion-multi-picker>
</ion-item>
</ion-list>
</ion-content>
edit.ts
import {Component} from '@angular/core';
import {IonicPage, NavController, NavParams} from 'ionic-angular';
import {CityDataProvider} from "../../providers/city-data/city-data";
@IonicPage()
@Component({
selector: 'page-edit',
templateUrl: 'edit.html',
})
export class EditPage {
cityColumns: any[];
constructor(public navCtrl: NavController, public navParams: NavParams, public cityDataProvider: CityDataProvider) {
this.cityColumns = this.cityDataProvider.cities;
}
}
5. 一个坑
错误如下:
Uncaught (in promise): Error: Template parse errors:
Can't bind to 'multiPickerColumns' since it isn't a known property of 'ion-multi-picker'.
1. If 'ion-multi-picker' is an Angular component and it has 'multiPickerColumns' input, then verify that it is part of this module.
2. If 'ion-multi-picker' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.
为啥就报错了咩...明明什么都没有错...
最终我在这个 Issue 中找到了解决方案。
因为我的这个页面是子页面,所以也要将 MultiPickerModule 导入子module一下。如果是根页面的话就没有问题。
edit.module.ts:
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { EditPage } from './edit';
import {MultiPickerModule} from 'ion-multi-picker';
@NgModule({
declarations: [
EditPage,
],
imports: [
MultiPickerModule,
IonicPageModule.forChild(EditPage),
],
})
export class EditPageModule {}
6. 更多
7. 效果图
iOS:
Android:

如有不当之处,请予指正,谢谢~
Ionic3学习笔记(十一)实现省市区三级联动的更多相关文章
- ajax省市区三级联动
jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- 省市区三级联动——思路、demo、示例
说明(2017-12-13 11:03:58): 1. 这个功能应该是注册的时候非常.常用的了,不过现在都是微信登录,手机端自动获取位置什么的,可能就网站还用用吧! 2. 这个东西的难点在于统计各地省 ...
- 【转】纯JS省市区三级联动(行政区划代码更新至2015-9-30)
本文代码实现的功能是省市区三级联动下拉列表,纯Javascript,网上已有很多这方面的代码.但是作为一个新手,这是我的第一篇CSDN博客,发此文的目的主要是学习交流,希望看到的朋友发现有什么不对的地 ...
- 原生javascript制作省市区三级联动详细教程
多级联动下拉菜单是前端常见的效果,省市区三级联动又属于其中最典型的案例.多级联动一般都是与数据相关联的,根据数据来生成和修改联动的下拉菜单.完成一个多级联动效果,有助于增强对数据处理的能力. 本实例以 ...
- jQuery省市区三级联动插件
体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- JS省市区三级联动
不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...
- QQ JS省市区三级联动
如下图: 首先写一个静态的页面: <!DOCTYPE html> <html> <head> <title>QQ JS省市区三级联动</title ...
- 从QQ网站中提取的纯JS省市区三级联动
在 http://ip.qq.com/ 的网站中有QQ自己的JS省市区三级联动 QQ是使用引用外部JS来实现三级联动的.JS如下:http://ip.qq.com/js/geo.js <!DOC ...
随机推荐
- 为啥REST如此重要?
摘要:REST——表征状态转移,由于REST模式的Web服务更加简洁,越来越多的Web服务开始采用REST风格设计和实现.例如,Amazon.com提供接近REST风格的Web服务进行图书查找:雅虎提 ...
- 转载:WPF MVVM之INotifyPropertyChanged接口的几种实现方式
原文地址:http://www.cnblogs.com/xiwang/ 序言 借助WPF/Sliverlight强大的数据绑定功能,可以比实现比MFC,WinForm更加优雅轻松的数据绑定.但是在使用 ...
- 张高兴的 Windows 10 IoT 开发笔记:红外温度传感器 MLX90614
GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/MLX90614
- VisualStudio 合并代码文件
如果有相同的类,一般可以使用 partial 让他写在多个文件,那么如何把多个文件合并?请看 MainWindow.xaml 和 MainWindow.xaml.cs 其中 代码文件被折叠,那么如何做 ...
- 解决MySQL中文乱码问题
决解乱码费了我好些时间啊! 乱码原因有 1.mysql未设置为支持汉字 2.没有发送头信息 3.使用的编译器不符合相应的编码 决解的方法是 在mysql里 我用的是Wanmp Server 1.在my ...
- yum fastermirror插件屏蔽一些国内源
最近被yum上hust源的问题恶心的受不了了,真不明白这种源还活着有什么意义,干脆关了得了,省得恶心人,经常Errno 14,404not found,去网页一看,好家伙,提示404的xml.gz路径 ...
- MongoDB理解
1. 什么是MongoDB (1)MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. (2)MongoDB 是一个 ...
- Spring AOP中级——应用场景
在<Spring AOP初级——入门及简单应用>中对AOP作了简要的介绍,以及一些专业术语的解释,同时写了一个简单的Spring AOPdemo.本文将继续探讨Spring AOP在实际场 ...
- 将本地web服务映射到公网访问
本文始发于我的个人博客,如需转载请注明出处. 为了更好的阅读体验,可以直接进去我的个人博客看. 项目部署 之前在学习前端的时候项目都只是在本地测试,永远的都是类似 http://localhost/x ...
- Ionic3 下拉刷新
参考: http://ionicframework.com/docs/api/components/refresher/Refresher/