热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初学angular2的一些总结1.)

先从模块库中引入组件import{Component}from“angular2core”;import{bootstrap}from“angular2plat
  1. 先从模块库中引入组件
  2. import {Component} from “angular2/core”;
  3. import {bootstrap} from “angular2/platform/browser”;
    然后定义组件
@Component({ 
Selector:’my-app’, 这里的my-app是html上自己写的节点
Selector:’[my-app]’, 这里的my-app是节点属性
Selector:’[my-app=123]’, 这里的my-app是节点属性值123’>…
Selector:’.my-app’, 这里的my-app是节点css属性
Styles:[‘h1{background:#fff;color:#ddd}’] 内联样式,作用是改变ui组件的外观
styleUrls:[‘ez-greeting.css’] 外部样式,作用改变ui组件的外观
properties:[‘name’,’country’] 为组件增加属性接口,中括号里面是成员变量,由外到内,调用者设置具体属性后才把具体属性值返回到被调用者自身属性中
directives:[xxApp], 在模板中使用自定义指令(组件是一种指令),这个directives属性应该写在最上面,xxApp应该是依赖被调用组件的类名 class xxApp。如果使用多个指令,写法应该是directives:[[xxApp],[ccApp]]
events:[‘change’] 与properties属性作用方向相反,由内到外,事件触发后才反馈给调用者
pipes:[xxxPipe]用法跟directives一样,用于自定义管道,需要先@Pipe({name:”xxx”})
calss xxxPipe{
//管道类中必须实现的方法,input参数是指需要管道化的左边原始数据,args参数是指若干个可选参数。
transform(input,args){

}}
Template:’xxxxx’ 需要替换的内容
})

定义一个类 class EzApp{}
最后渲染组件 bootstrap(EzApp);

//EzCard 
@Component({
properties:["name","country"]
})

调用EzCard组件以及使用内容,在模板中注意指令对象的写法

//EzApp
@Component({
directives : [EzCard],
template : `[name]="'雷锋'" [country]="'中国'">`
})

属性值绑定常量,两种写法(textContent不能改成其他随意的单词,如果要改样式的单词是style):

//正确,Angular2识别出常量字符串表达式 'Hello,Angular2'
@Component({template:`

`})
//正确,Angular2识别出常量字符串作为属性textContent的值
@Component({template:`

`
})

属性值绑定组件模型中的表达式,html属性已中括号形式绑定类中的构造函数的变量:

@Component({template:`<h1 [textContent]="title">h1>`})
Class EzApp{
Constructor(){
This.title = “xxxxxx”
}
}

(event)事件绑定,相当于on-click

<button (click)="roulette()">ROULETTEbutton>

(下面的ngIf不管哪种写法I一定是大写)

[ngIf]=”trial==true”这样的指令一定要写在<template [ngIf]=”trial==true”>template>才有效
*ngIf=”trial==true”跟template=”ngIf trial==true”指令可以随意写在html任何节点上。

NgFor的原始使用:

<template ngFor [ngForOf]="items" #item #i="index">
<li>[
{{i+1}}] {{item}}li>
template>

NgFor的语法糖使用,一般习惯用第二种写法:

//使用template attribute
"ngFor #item of items;#i=index">...
//使用*前缀
"#item of items;#i=index">...

自定义管道:

@Pipe({name:'ezp',pure:false})//pure为可选参数,用于判断在每个变化检查周期都执行管道的transform()方法,默认true,不检查
class EzPipe{
transform(input,args){
return input + " " +args.join(" ");
}
}

使用上面的管道:


{{ "call " | ezp:'john':'mary':'linda' }}
ngControl=”xxx” //使用控件租获得输入值 
 [(ngModel)] = “xxx.ccc”// 实现模型与表单的双向绑定功能。
//在组件模板中使用
[ngFormControl]=”xxx”
//需要先在对应的类构造函数中创建control对象
This.xxx = new Control(“ccccccc”); //作用是初始化控件显示数据。

定义指令相关内容解释说明:

@Directive({
Selector:”[xxx-cc]”,//括号里面的内容用于在调用该指令的组件模板中作为dom元素
Inputs:[“bgColor:xxx-cc”]//将dom对象的属性映射到指令对象的属性,bgColor需要在类中定义,在调用者组件的模板中使用样板good>
Host:{//用于监听指令所在dom元素的事件,下面是监听点击、鼠标事件
‘(click)’:’onXxx()’,
‘(mouseover)’:’onCccc()’
}
})
Class xxx{ // xxx将作为调用者组件中directives:[xxx]的指向
Constructor(@Inject(ElementRef) er ,@Inject(Renderer) renderer){//renderer用于代替直接的dom操作,然后在方法中使用
//执行指令操作
This.el = er.nativeElement;//获取指令所在的dom元素
This.renderer = renderer;
}
set bgColor(v){//这里的set作用是捕捉每个变化的时刻
this.el.style.color = v;
this.renderer.setElementStyle(this.el,”background”,v);//这里就使用renderer以及它自己的方法
}
onXxx(){};
onCccc(){};
}

服务的封装:
1.定义一个类,实现类里的方法。然后在需要用到的组件类中的构造器里new出来。(强耦合,不适合)
2.使用providers属性,

@Component({        
providers : [EzAlgo] //声明依赖,EzAlgo是封装好的服务类
})
class EzApp{
//Angular2框架负责注入对象
constructor(@Inject(EzAlgo) algo){
//已经获得EzAlgo实例了!
}
}

路由
1需要import{LocationStrategy,Router,ROUTER_DIRECTIVES,ROUTER_PROVIDERS}from “angular2/router”;
2 在组件中配置

router.config([
{path:"/video", component:EzVideo,name:”Video”},
{path:"/music", component:EzMusic,name:”Music”}
])

其中path值为请求路径,component值为组件类名,name值为这json对象用于作为点击跳转事件的实参。
3 在2组件中调用在构造函数中注入的(@Inject (Router) router)对象,调用router.navigate(ptah); //根据给定的url(path),选中组件并在outlet中激活,router对象其实是指向2中的router.config的配置信息,只不过这个指向处理是由框架去做。
4 在组件的@Component中的模板中使用
作为组件内容替换展示的地方。另外还要使用属性directives:[ROUTER_DIRECTIVES],进行指令声明。
5 在启动时还要声明下依赖bootstrap(EzApp,[ROUTER_PROVIDERS]);


推荐阅读
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
author-avatar
空心悟心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有