网站建设资讯

NEWS

网站建设资讯

怎么在Angular应用中创建包含组件方法

小编给大家分享一下怎么在Angular应用中创建包含组件方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

我们提供的服务有:网站设计、成都做网站、微信公众号开发、网站优化、网站认证、利辛ssl等。为1000多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的利辛网站制作公司

理解组件包含

包含组件就是指可以包含其它组件的组件, 以 Bootstrap 的卡片 (Card) 为例, 它包含页眉 (header) 、 主体 (body) 和 页脚 (footer) , 如下图所示:

怎么在Angular应用中创建包含组件方法


 
 Featured
 
   Special title treatment  With supporting text below as a natural lead-in to additional content.

 Go somewhere  
   2 days ago  

那么问题来了, 如何用 angular 来实现这样的一个组件?

这就是所谓的包含。

创建包含组件

在 angular 中, 所谓的包含就是在定义固定视图模板的同时, 通过 标签来定义一个可以放动态内容的位置。 下面就来实现一个简单的卡片组件。

卡片组件的类定义为:

// card.component.ts
import { Component, Input, Output } from '@angular/core';

@Component({
 selector: 'app-card',
 templateUrl: 'card.component.html',
})
export class CardComponent {
 @Input() header: string = 'this is header'; 
 @Input() footer: string = 'this is footer';
}

@Input 是一个声明, 允许从父组件传入任意的文本。

卡片组件的的视图模板定义为:



 
 
 
 
 
 
 
 
 
 

为了能够在其它组件中使用, 需要在对应的 AppModule 中添加声明:

import { NgModule }  from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent } from './app.component';
import { CardComponent } from './card.component'; // import card component

@NgModule({
 imports:  [ BrowserModule ],
 declarations: [ AppComponent, CardComponent ], // add in declaration
 bootstrap: [ AppComponent ],
})
export class AppModule { }

如果使用了 angular-cli 来生成这个组件的话, 会自动在 AppModule 中添加声明。

使用卡片组件

在另外一个组件 AppComponent 中使用刚刚创建的卡片组件的话, 代码如下所示:


Single slot transclusion

     You can put any content here  For example this line of text and

 This button    

当然, 可以使用 [header] 以及 [footer] 进行数据绑定。

选择符

接受一个 select 属性, 允许定义选择符, 可以更加精确选择被包含的内容。 打开 card.component.html , 做一些修改



 
 
 
 
 
 
 
 

注意, 添加了 select="[card-body]" , 这意味着将被包涵的元素必须有 card-body 属性, 用法也需要响应的调整一下


Single slot transclusion

     You can put any content here  For example this line of text and

 This button    

的 select 属性接受标准的 css 选择符, 比如: select="[card-type=body]" select=".card-body" select="card-body" 等等。

包含多个位置

使用 select 属性, 可以在一个组件中定义多个包含位置。 现在继续修改卡片组件, 允许页眉和页脚包含动态内容。



 
 
 
 
 
 
 
 
 
 

用法也相应的修改一下:


Single slot transclusion

   New header      You can put any content here  For example this line of text and

 This button      New footer

小结

使用包含组件, 可以将布局提取成组件, 动态指定加载的内容, 应该也是很常用的。 而至于选择符 (select), 则建议使用属性, 这样可读性比较好, 也不会破坏 html 的结构。

看完了这篇文章,相信你对“怎么在Angular应用中创建包含组件方法”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享标题:怎么在Angular应用中创建包含组件方法
标题链接:http://cdweb.net/article/ghhcci.html

其他资讯