本章内容为阅读官方文件有关 interpolation 的笔记内容。
一般状况,interpolation 都会用来呈现某个元件它自己拥有的成员属性,像下面这样,假若 app.component 拥有一个叫做 title 的成员属性,我们利用 interpolation 将它呈现在画面上
@Component({
// ...
})
export class BannerComponent implements OnInit {
title = 'Jasper'
}
<h2> {{ title }} </h2> // 呈现 Jasper 内容
interpolation 除了上面这种用法以外,还可以用来呈现某个样板内容的属性,这个样板内容有可以是 template input variable 的属性或者是一个 template reference variable 的属性。
下面的范例就是利用 interpolation 来呈现 template input variable 的属性。
<ul>
<li *ngFor="let customer of customers"> {{ customer.name }}</li>
</ul>
像上面的范例,customer 就是我们的 template ,假若今天它有一个 name 属性,如此,我们就可以透过 interpolation 在里面使用物件调用它的属性的方式 customer.name,如此一来,就可以呈现它的属性内容罗。
<label>Type something:
<input #customerInput>{{customerInput.value}}
</label>
上面的范例,我们宣告一个 #customerInput 可以取得这个 input 栏位。接着,再透过 interpolation 来呈现此 input 栏位的 value 内容。
当有多个区域的变数名称有冲突,则 Angular 会以以下的逻辑来区别它们
这边举个样板变数和元件的成员属性名称彼此冲突的状况
<h1> {{ customer }} </h1>
<ul>
<li *ngFor="let customer of customers"> {{ customer.name }}</li>
</ul>
class AppComponent {
customers = [{name: 'Tiffany'}, {name: 'Jared'}];
customer = 'Jasper';
}
上面的例子中,在 *ngFor
中的 customer 就是属於样板变数的情况,依据上面列出的 Angular 区别出它的逻辑所以,这边的内容会呈现 Tiffany 和 Jared 而不会是 Jasper。而在 h1 中的 customer 是属於元件的成员属性,所以,Angular 可以区别出它是从哪里来。所以,以上的变数名称酸然有冲突,但 Angular 还是能依照他的判断逻辑来区分出它们是属於哪个区域的变数,而不会发生冲突错误。
这边做个总结
昨天谈到 write skew 和 phantoms ,是 2 种特别难重现的 竞争条件 (race...
元件自动侦测改变外观 现在网页应用程序越来越朝向「mobile first」设计,代表网站都要能支援...
测试覆盖率在测试中的环节也是需要顾及的,我们今天会使用 SimpleCov 来算测试覆盖率 安装 S...
HTML 5 通常有下列6个大部分 1.BOM 2.任何数目的注解与空白字元 3.DOCTYPE 4...
目的 如果物件内的方法,会依据物件内的状态,使用多个 if - else if - else 或 s...