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 相关文章推荐
让Firefox支持event对象实现代码
Nov 07 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
JavaScript面向对象之私有静态变量实例分析
Jan 14 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
vue模板语法-插值详解
Mar 06 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
Jul 05 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
Sep 05 Javascript
layui实现鼠标移动到单元格上显示数据的方法
Sep 11 Javascript
Vue实现手机计算器
Aug 17 Javascript
详解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
php基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
Python可变参数函数用法实例
2015/07/07 Python
Python创建字典的八种方式
2019/02/27 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
优秀党员主要事迹
2014/01/19 职场文书
婚庆公司计划书
2014/09/15 职场文书
实习班主任自我评价
2015/03/11 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL
php解析非标准json、非规范json的方式实例
2022/05/10 PHP