angular4自定义组件详解

发布时间 - 2026-01-11 03:27:33    点击率:

在 Angular 中,我们可以使用 {{}} 插值语法实现数据绑定。

新建组件

$ ng generate component simple-form --inline-template --inline-style
# Or
$ ng g c simple-form -it -is # 表示新建组件,该组件使用内联模板和内联样式
//会自动为simple-form生成simple-form.component.ts文件,文件中的selector为:app-simple-form,自动添加了app-前缀

输出:

installing component
 create src/app/simple-form/simple-form.component.spec.ts // 用于单元测试
 create src/app/simple-form/simple-form.component.ts // 新建的组件
 update src/app/app.module.ts //Angular CLI 会自动更新 app.module.ts 文件。把新建的组件添加到 NgModule 的 declarations 

数组中

app.module.ts更新后:

@NgModule({
 declarations: [
  AppComponent,
  SimpleFormComponent
 ],
 ...
})
export class AppModule { }

创建 UserComponent 组件

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

@Component({ //Component 装饰器来定义组件的元信息
 selector: 'sl-user',
 template: `
  <h2>大家好,我是{{name}}</h2>
  <p>我来自<strong>{{address.province}}</strong>省,
   <strong>{{address.city}}</strong>市
  </p>
   <p>{{address | json}}</p>//Angular 内置的 json 管道,来显示对象信息
`, }) 

//定义组件类

export class UserComponent { 
  name = 'name'; 
  address = { province: 'province', city: 'city' } 
}


//使用构造函数初始化数据
export class UserComponent {
  name: string;
  address: any;
  constructor() {
    this.name = 'name';
    this.address = {
      province: 'province',
      city: 'city'
    }
  }
}

//接口使用
interface Address {
  province: string;
  city: string;
}
export class UserComponent {
  name: string;
  address: Address;
  constructor(){
    this.name = 'name';
    this.address = {
      province: 'province',
      city: 'city'
    }
  }
}

定义数据接口( TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。)

interface Person {
 name: string;
 age: number;
}

let semlinker: Person = {
 name: 'semlinker',
 age: 31
};

声明 UserComponent 组件

// ...
import { UserComponent } from './user.component';//载入
@NgModule({
 imports:   [ BrowserModule ],
 declarations: [ AppComponent, UserComponent],//声明
 bootstrap:  [ AppComponent ]
})
export class AppModule { }

在AppComponent中使用 UserComponent 组件

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

@Component({
 selector: 'my-app',
 template: `
  <sl-user></sl-user> //UserComponent 的 selector
 `,
})
export class AppComponent {}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angular  # angular4  # 自定义组件  # 详解Angular 4.x 动态创建组件  # Angular2学习教程之组件中的DOM操作详解  # 详解angular2封装material2对话框组件  # angular2倒计时组件使用详解  # Angular 2父子组件数据传递之@ViewChild获取子组件详解  # Angular2利用组件与指令实现图片轮播组件  # Angularjs 创建可复用组件实例代码  # Angular 2父子组件数据传递之@Input和@Output详解(下)  # Angular2开发——组件规划篇  # Angular2自定义分页组件  # 我是  # 大家好  # 可以使用  # 是一个非常  # 绑定  # 大家多多  # 自动更新  # 也常  # 组中  # 单元测试  # 插值  # 可用于  # src  # spec  # installing  # br  # update  # create 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何用美橙互联一键搭建多站合一网站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何在橙子建站中快速调整背景颜色?  青岛网站建设如何选择本地服务器?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Thinkphp 中 distinct 的用法解析  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  详解Android图表 MPAndroidChart折线图  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何在橙子建站上传落地页?操作指南详解  java中使用zxing批量生成二维码立牌  如何在VPS电脑上快速搭建网站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  个人摄影网站制作流程,摄影爱好者都去什么网站?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  利用python获取某年中每个月的第一天和最后一天  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  网站建设保证美观性,需要考虑的几点问题!  JavaScript实现Fly Bird小游戏  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel如何处理和验证JSON类型的数据库字段  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何快速上传自定义模板至建站之星?  EditPlus中的正则表达式 实战(4)  Laravel API资源类怎么用_Laravel API Resource数据转换  利用vue写todolist单页应用  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  实例解析angularjs的filter过滤器  详解Android中Activity的四大启动模式实验简述  如何撰写建站申请书?关键要点有哪些?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Python文件流缓冲机制_IO性能解析【教程】  微信小程序 canvas开发实例及注意事项  如何为不同团队 ID 动态生成多个非值班状态按钮  用yum安装MySQLdb模块的步骤方法  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何做网站制作流程,*游戏网站怎么搭建?  网站制作价目表怎么做,珍爱网婚介费用多少?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何用PHP工具快速搭建高效网站?  郑州企业网站制作公司,郑州招聘网站有哪些?