原生html封装组件,如何封装angular组件?

组件(Component)是构成Angular应用的基础和核心。通俗来说,组件用来包装特定的功能,应用程序的有序运行依赖于组件之间的协调工作。

89210d5f7af81cab4a9191ac964000ee.png

封装组件

作为入门,这是一个非常简单的demo,但核心的接收使用者的输入@Input(),以及返回数据给使用者@Output()都实现了,所以有一定的借鉴意义。

目录结构:(部分目录不是框架中自动生成,二是后期添加,按照步骤进行即可。)

77ec4e3c643b7553656020390a660986.png

具体代码:

html:(search.component.html)

#info placeholder="{{information}}" >

(click)="query(info.value);">查询

css:(search.component.css)

.form-control{

float: left;

width: 70%;

}

.btn btn-default{

background-color: #41ABE9;

}

ts:(search.component.ts)import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';

@Component({

selector: 'app-search',

templateUrl: './search.component.html',

styleUrls: ['./search.component.css']

})

export class SearchComponent implements OnInit {

@Input() information: string;

@Input() url: string;

dataUrl: string;

@Output() editData = new EventEmitter();

constructor() { }

ngOnInit() {

}

query(info: string) {

this.dataUrl = this.url + '/' + info;

this.editData.emit(this.dataUrl);

}

}

解释:@Input,接收信息。如information可以接收Html中的{{information}}的值

@Output是输出。即引用组件化的人可以拿到editData的返回值。

module:(search.module.ts)import {SearchComponent} from './search.component' ;

import {CommonModule} from '@angular/common';

import { NgModule } from '@angular/core';

import { FormsModule } from '@angular/forms';

import { HttpModule } from '@angular/http';

@NgModule({

declarations: [

SearchComponent

],

imports: [

CommonModule,

FormsModule,

HttpModule,

],

providers: [],

exports: [SearchComponent],

})

export class SearchModule { }

至此组件完成,可以通过在app.component.html中引入如下看看效果:

{{information}}

{{dataUrl}}

对应app.component.ts中需要定义:import { Component } from '@angular/core';

@Component({

selector: 'app-root',

templateUrl: './app.component.html',

styleUrls: ['./app.component.css']

})

export class AppComponent {

information = '输入班级名称';

url= 'Class/find';

dataUrl: string;

query(info: any) {

this.dataUrl = info;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值