ionic 编写自定义控件
- 创建组件
在项目所在目录下执行:
ionic g component <ComponentName>
- 在src/components中会出现:
——components
|——ComponentName
|——ComponentName.html
|——ComponentName.scss
|——ComponentName.ts
|——components.module.ts
- 组件模块:
- ComponentName.html
<div class="progress-outer">
<div class="progress-inner" [style.width]="progress +'%'">
{{showProgress}}%
</div>
</div>
- ComponentName.scss
progress-bar {
.progress-outer{
width: 96%;
margin:10px 2%;
padding: 3px;
text-align: center;
background-color: #f4f4f4;
border:1px solid #dcdcdc;
color: #fff;
border-radius: 20px;
}
.progress-inner{
min-width: 15%;
white-space: nowrap;
overflow: hidden;
padding: 5px;
border-radius: 20px;
background-color: map_get($colors,primary);
}
}
- ComponentName.ts
import {Component, Input} from '@angular/core';
@Component({
selector: 'progress-bar',
templateUrl: 'progress-bar.html'
})
export class ProgressBarComponent {
@Input('progress') progress:Number;
@Input('showProgress') showProgress:Number;
constructor() {
console.log('Hello ProgressBarComponent Component');
}
}
- 组件通讯
- @Input
- @Output
- my.ts:
import {Component, EventEmitter, Input, Output} from '@angular/core';
/**
* Generated class for the MyComponent component.
*
* See https://angular.io/api/core/Component for more info on Angular
* Components.
*/
@Component({
selector: 'my',
templateUrl: 'my.html'
})
export class MyComponent {
@Input('data') data: string;
@Output() parentClick=new EventEmitter();
constructor() {
console.log('Hello MyComponent Component');
}
MCClick(){
this.parentClick.emit({
from:this.data
})
}
}
- my.html:
<div (click)="MCClick()" class="red-text">from {{data}}</div>
- 引入自定义控件
- 在src/app/app.module.ts引入ComponentNameComponent
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
..........
import {ComponentsModule} from "../components/components.module"
@NgModule({
declarations: [
MyApp,
....
//ProgressBarComponent
],
imports: [
BrowserModule,
IonicModule.forRoot(MyApp),
ComponentsModule
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
....
],
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}
- 在使用自定义组件的页面所在的module中引入
...
import {ComponentsModule} from "../../components/components.module"
...
@NgModule({
declarations: [
...
],
imports: [
...
ComponentsModule
]
})
export class MyModule{
...
...
}
- 然后就可以在页面中使用了:
<ion-header>
<ion-navbar>
<ion-title>testProgressBar</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<progress-bar [progress]="loadProgress1" [showProgress]="loadProgress"></progress-bar>
</ion-content>
参考网址:
http://e2web.cn/2017/02/27/
http://blog.csdn.net/github_36704158/article/details/76355989
ionic 编写自定义控件的更多相关文章
- Qt编写自定义控件二动画按钮
现在的web发展越来越快,很多流行的布局样式,都是从web开始的,写惯了Qt widgets 项目,很多时候想改进一下现有的人机交互,尤其是在现有的按钮上加一些动画的效果,例如鼠标移上去变大,移开还原 ...
- [翻译]Writing Custom Common Controls 编写自定义控件
摘要:介绍如何编写自定义的控件,用在报表的窗体上(如Edit,Button等) Writing Custom Common Controls 编写自定义控件 FastReport contains ...
- 编写Qt Designer自定义控件(二)——编写自定义控件界面
接上文:编写Qt Designer自定义控件(一)——如何创建并使用Qt自定义控件 既然是控件,就应该有界面,默认生成的控件类只是一个继承了QWidget的类,如下: #ifndef LOGLATED ...
- Qt编写自定义控件插件开放动态库dll使用(永久免费)
这套控件陆陆续续完善了四年多,目前共133个控件,除了十几个控件参考网友开源的代码写的,其余全部原创,在发布之初就有打算将动态库开放出来永久免费使用,在控件比较完善的今天抽了半天时间编译了多个qt版本 ...
- Qt编写自定义控件11-设备防区按钮控件
前言 在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,安防领域一般用来表示防区或者设备,可以直接显示防区号,有多种状态颜色指 ...
- Qt编写自定义控件10-云台仪表盘
前言 做过安防视频监控的同学都清楚,在视频监控系统软件上都可以看到一个云台控制区域,可以对球机进行下下左右等八个方位的运动控制,还可以进行复位,一般都是美工作图好,然后贴图的形式加入到软件中,好处是程 ...
- Qt编写自定义控件9-导航按钮控件
前言 导航按钮控件,主要用于各种漂亮精美的导航条,我们经常在web中看到导航条都非常精美,都是html+css+js实现的,还自带动画过度效果,Qt提供的qss其实也是无敌的,支持基本上所有的CSS2 ...
- Qt编写自定义控件8-动画按钮组控件
前言 动画按钮组控件可以用来当做各种漂亮的导航条用,既可以设置成顶部底部+左侧右侧,还自带精美的滑动效果,还可以设置悬停滑动等各种颜色,原创作者雨田哥(QQ:3246214072),驰骋Qt控件界多年 ...
- Qt编写自定义控件7-自定义可拖动多边形
前言 自定义可拖动多边形控件,原创作者是赵彦博(QQ:408815041 zyb920@hotmail.com),创作之初主要是为了能够在视频区域内用户自定义可拖动的多个区域,即可用来作为警戒区域,也 ...
随机推荐
- UVa 10970 大块巧克力
https://vjudge.net/problem/UVA-10970 题意: 把一个m行n列的矩形巧克力切成mn个1×1的方块,需要切几刀. 思路: 可以考虑用动态规划的方法去做,当然,最简单的是 ...
- spring +servlet 与 spring MVC
spring serlvetSpring框架中context-param与servlet中init-param的contextConfigLocation的区别https://blog.csdn.ne ...
- python group()--转载
import re a = "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) ...
- BZOJ 2669 【CQOI2012】 局部极小值
题目链接:局部极小值 这是一道\(dp\)好题. 由于需要保证某些位置比周围都要小,那么我们可以从小到大把每个数依次填入,保证每个局部极小值填入之前周围都不能填,就只需要在加入的时候计数了. 由于局部 ...
- MySQL数据库性能优化
mysql查询优化: 1.新增字段索引,查询时若使用到or关键字,则两个字段都需建立索引才能生效 2.sql语句包含子查询,mysql会创建临时表查询结束后删除,影响效率,所以应尽可能使用join替代 ...
- 《剑指offer》第三十六题(二叉搜索树与双向链表)
// 面试题36:二叉搜索树与双向链表 // 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求 // 不能创建任何新的结点,只能调整树中结点指针的指向. #include < ...
- Python string常用函数
2017-07-03 23:26:08 1..replace(self, old, new, count=-1) replace()函数将旧字符串替换为新字符串,最后一个参数count为可选项,表示替 ...
- XML和Schema
2017-11-03 19:33:56 XML:Extensible Markup Language,也就是可扩展标记语言.XML工具使处理和转化信息变得十分容易和方便. XML和HTML格式是古老的 ...
- php程序突然不能用file_get_contents()访问远程网址了?
php程序用file_get_contents("http://www.***.com"),一直以来好好的,突然间就不能链接远程网址了,在shell下可以ping通远程网址,可是用 ...
- XAML中格式化日期
要求被格式化数据的类型是DateTime StringFormat='yyyy-MM-dd' StringFormat={}{0:yyyy-MM-dd}