angular入门篇(2)——*ngIf,数据绑定事件,属性绑定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angular入门篇(2)——*ngIf,数据绑定事件,属性绑定相关的知识,希望对你有一定的参考价值。
参考技术A 1,*ngIf简单用法用于显示与隐藏某些元素,例:<div *ngIf="ishide">测试啊啊啊</div>,也可以与toggle按钮配合。
如图;
2,数据绑定事件
以键盘事件和按钮点击事件为例,在事件发生的时候 html页面函数可以传递"$event",从而在ts页面对应的函数里面接收事件对象"e",打印出事件对象,可发现,里面包含坐标clientX、keyCode、currentTarget等等
3,属性的双向绑定
以input输入框为例,数据的双向绑定得提前在app.module引入FormsModule 这个模块,并且在imports申明此模块,否则html页面的[(ngModel)]报错。
未完待续。。。
Angular2 使用 *ngif 在 html 代码中设置类名
【中文标题】Angular2 使用 *ngif 在 html 代码中设置类名【英文标题】:Angular2 use *ngif to set class name in html code 【发布时间】:2018-10-01 15:21:57 【问题描述】:我尝试了一些东西,因为我正在构建一个天气仪表板。
我使用 http 加载天气数据并订阅,所以我会得到一个可观察的返回,我不能像 typescript 中的数组那样通过槽来添加新属性。
例如,我想查看每个天气数据并查看某个值是否超过 70°F,并告诉天气数据项添加一个新属性“weatherdata-sun-hot”。否则它应该使用另一个类名“weatherdata-sun-normal”,我会使用它作为类名,稍后通过插值将其放入 html 中。
所以我的想法是用html模板来解决这个问题
到目前为止,我的代码在这里
<ul>
<li *ngFor="let item of weatherdata">item.dt_txt | item.main.temp_min -> item.main.temp_max</li>
</ul>
有没有优雅的方法来解决这个问题?
感谢您的帮助。
【问题讨论】:
你需要条件类,看这个***.com/questions/35269179/… @AliAdravi:感谢您的提示,但我看不到那里的 if/else 机制。就像如果 val 大于使用类名 x 其他类名 y 一样。你能给我一个简单的例子吗? :-) 再次感谢。 @AliAdravi:我想出了一个我尝试过的可行解决方案:<li *ngFor="let item of weatherdata" [ngClass]="[item.main.temp_max > 17 ? 'weather-sun-hot' : 'weather-sun-normal']" >item.dt_txt | item.main.temp_min -> item.main.temp_max</li>
但对我来说,它看起来像丑陋的代码。或者你会以同样的方式实现它吗?我很困惑。
【参考方案1】:
你需要使用 ngClass 指令:
<ul>
<li *ngFor="let item of weatherdata" [ngClass]="'weatherdata-sun-hot': item.main.temp_min > 70, 'weatherdata-sun-normal': item.main.temp_min <= 70">
item.dt_txt | item.main.temp_min -> item.main.temp_max
</li>
</ul>
或者你可以在组件的代码中做它并绑定它:
模板
<ul>
<li *ngFor="let item of weatherdata" [ngClass]="tempClass(item)">
item.dt_txt | item.main.temp_min -> item.main.temp_max
</li>
</ul>
组件
@Component(...)
class MyComponent
tempClass(item): any
const hot = item.main.temp_min > 70;
return
'weatherdata-sun-hot': hot,
'weatherdata-sun-normal': !hot
;
【讨论】:
感谢您的观点...我应该想到的 :-) 如此简单和好。祝你有美好的一天。以上是关于angular入门篇(2)——*ngIf,数据绑定事件,属性绑定的主要内容,如果未能解决你的问题,请参考以下文章
Angular2:条件显示,绑定到 [hidden] 属性与 *ngIf 指令 [重复]
Angular 2 Performance:绑定数据成员比绑定函数更好吗?