zoukankan      html  css  js  c++  java
  • angular4-自定义组件

    在 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 {}
  • 相关阅读:
    快速排序算法
    HDOJ(1005) Number Sequence
    HDOJ(1004) Let the Balloon Rise
    HDOJ(1003) Max Sum
    HDOJ(1002) A + B Problem II
    HDOJ(1001) Sum Problem
    HDOJ(1000) A + B Problem
    DeepFaceLab小白入门(5):训练换脸模型!
    DeepFaceLab小白入门(4):提取人脸图片!
    DeepFaceLab小白入门(3):软件使用!
  • 原文地址:https://www.cnblogs.com/avidya/p/7461273.html
Copyright © 2011-2022 走看看