angular4自定义组件详解


Posted in Javascript onSeptember 28, 2017

在 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 {}

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

Javascript 相关文章推荐
javascript实现表格增删改操作实例详解
May 15 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
总结JavaScript设计模式编程中的享元模式使用
May 21 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
jQuery中ScrollTo用法示例
Sep 04 Javascript
Bootstrap如何创建表单
Oct 21 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
关于JS模块化的知识点分享
Oct 16 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
Jun 16 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 #Javascript
Node.js利用断言模块assert进行单元测试的方法
Sep 28 #Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 #Javascript
node.js学习之断言assert的使用示例
Sep 28 #Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 #Javascript
node.js学习之事件模块Events的使用示例
Sep 28 #Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 #Javascript
You might like
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python连接字符串的方法小结
2015/07/13 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
基于python实现对文件进行切分行
2020/04/26 Python
Django 解决由save方法引发的错误
2020/05/21 Python
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
意向书范文
2014/03/31 职场文书
工作推荐信范文
2014/05/10 职场文书
实习协议书范本
2014/09/25 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
爱护环境建议书
2015/09/14 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL