博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angular2 - 事件和属性 - 01
阅读量:5310 次
发布时间:2019-06-14

本文共 2542 字,大约阅读时间需要 8 分钟。

前面一张我们构建了新的Component,现在我们就开始学习Angular2的新语法,看看如何使用Angular2的新语法和属性。

首先我们mock一个Hero对象的数组。然后我们对这个数组做系列的操作。

import { Hero } from './hero' //如果你想要使用某一个对象。必须提交导入export const HEROES:Hero[] = [  { id: 1, name: 'Bruce' },  { id: 2, name: 'Jason' },  { id: 3, name: 'Jack' },  { id: 4, name: 'Rose' },  { id: 5, name: 'Tornado' },  { id: 6, name: 'Bruce' }]

然后在你需要使用的component 里面导入即可。这样我们就可以使用这个数组了。

import { HEROES } from '../Entities/mock-heroes'
  • *ngFor ,复制宿主元素以及 所有的子元素。(前面的* 是Angular的关键部分,不能忘记。)

      在Angular1.x 中当我们想要复制宿主元素的时候我们使用的ng-repeat,Angular2中。我们可以在标签上面添加*ngFor 来遍历HEROES。包含name=“for”的元素。已经子元素都将被复制。

id : {
{hero.id}} , name : {
{hero.name}}
  • (click) ,click 事件
//调用Component中的方法 id : {
{hero.id}} , name : {
{hero.name}}
//Component中对应的click方法。   selectedHero: Hero;  selectHero(hero: Hero): void {    this.selectedHero = hero;  }
  • [(ngModule)],双向绑定属性,上一片我们已经有过接触。属性对应angular1.x中的ng-module。在使用ngModel进行双向绑定的时候,你必须导入FormsModule并吧他添加到Angular 模块的imports列表中。
  • *ngIf = "expression",对应angular1.x中的ng-if,具体用法如下,当expression=true的时候会显示元素和子元素,当expression=false,将不会出现DOM元素。元素在DOM中不站位。
这是ngIf
  • [class.some-css-class] = "expression",前面的class是固定写法。some-css-class对应你的css文件中的css class。当expression=true的时候some-css-class将会添加到元素上面,当expression= false,css将不会添加到元素上面。
[class.selected]="hero === selectedHero"
  • [style.color] = "expression",前面的style固定写法。类似上面提到的[class.some-css-class],这个返回的是单个style的样式。
  • [hidden] = "expression",expression 是引用的Component 中的boolean属性,标识是否隐藏DOM元素。
changed
  • [disabled] = "expression",从DOM的方面来看。如果button设置了disableed无论这个值是true还是false这个button任然被禁用。但是通过Angular的disabled属性可以禁用或者启用按钮,我们可以通过设置expression的返回值来禁用或者启用button
  • ngClass = "expression",Angular可以通过expression的方式来添加不同的cssl给DOM元素
//当isSpecial = true 时。special css将会添加到DOM中 
//当isSpecial = true 时。special css将会添加到DOM中 //当isSpecial = false 时。normal css将会添加到DOM中 
//也可以通过函数返回不同条件下的css
//Component 中的function currentClasses: {}; setCurrentClasses() { this.currentClasses = { 'saveable': this.canSave, 'modified': !this.isUnchanged, 'special': this.isSpecial }; }
  •  [ngStyle] 同时设置多个内联样式
This div is initially italic, normal weight, and extra large (24px).
currentStyles: {};setCurrentStyles() {
this.currentStyles = { 'font-style': this.canSave ? 'italic' : 'normal', 'font-weight': !this.isUnchanged ? 'bold' : 'normal', 'font-size': this.isSpecial ? '24px' : '12px' };}

 

转载于:https://www.cnblogs.com/allenj/p/10148196.html

你可能感兴趣的文章
UVA - 1592 Database
查看>>
Fine Uploader文件上传组件
查看>>
javascript中的传递参数
查看>>
objective-c overview(二)
查看>>
python查询mangodb
查看>>
consonant combination
查看>>
驱动的本质
查看>>
Swift的高级分享 - Swift中的逻辑控制器
查看>>
Swagger简单介绍
查看>>
Python数据分析入门案例
查看>>
vue-devtools 获取到 vuex store 和 Vue 实例的?
查看>>
Linux 中【./】和【/】和【.】之间有什么区别?
查看>>
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>