iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1
Modern Web

從巨人的 Tip 看 Angular系列 第 16

[Day 16] Not a Tip but a Trick!使用其他符號來做 interpolation 吧

  • 分享至 

  • xImage
  •  

各位好!中秋放假愉快,今天應景一下不講太多太深的東西,全心投入休假中 ?

今天「你可以不用知道的 Angular」要來介紹的不是 Tip!而是一個你根本沒想到要用的 Trick。我在擬稿的時候真的是寫到懷疑自我,到底我為什麼要介紹這個鬼東西呢。


正常、絕大多數的開發者在使用 Angular 來開發網頁應用程式時,我相信都會用到一個叫做 interpolation 的功能(不是數學,是 Angular),這個 interpolation 中文被譯為「插值」,不求斜率,求的是將 Angular typescript 內的變數插入 HTML template 裡面,如以下範例:

// HTML
<p>{{ title }}</p>

// TypeScript
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'day16';
}

↑ Block 1

Block 1 最終的顯示內容會是:

day16

嗯……這就是 interpolation!也是 Angular 101 的內容!

接下來的內容才是你不用知道的部分:

// HTML
<p>? title ?</p>

// TypeScript
@Component({
  selector: 'app-root',
  interpolation: ['?', '?'],
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'day16';
}

↑ Block 2

你沒看錯,我將左邊的插值符號用 ? 取代,而右邊的插值符號則從原本的 }} 替換成了 ?。

恩……

如果你哪天需要用到這個功能的話,請你一定要留言跟我說!


以上就是今天的「你可以不用知道的 Angular」小知識!

明天開始要回歸介紹 Tip 囉 ?

為什麼中秋要烤肉呢? ?

以下按照入團順序列出我們團隊夥伴的系列文章!

請自由參閱 ?


上一篇
[Day 15] 微探討 FormControl 跟 HTML input element 的 value 怎麼互動
下一篇
[Day 17] 透過 directive 來動態插入 Component!
系列文
從巨人的 Tip 看 Angular30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
黃升煌 Mike
iT邦研究生 5 級 ‧ 2020-10-02 15:07:13

如果 template 上就需要顯示 {{}} 呢?就必須把它當作字串如:

{{ '{{' }}

或放到 component 內當屬性使用

data = '{{';

如果 template 上有大量的 {{}} 需要當作字串顯示時,就可以考慮設定 interpolation

雖然是這樣說,但我也沒遇到這種情境就是了 XDD

BTW,有些符號是不能拿來當 interpolation 的,規則在這裡:
https://github.com/angular/angular/blob/master/packages/compiler/src/assertions.ts

感謝補充!
沒錯!當 template 上需要顯示 {{ 或 }} 就可以改 interpolation 的符號了 哈哈
另外,當屬性插入時因為是不同的處理邏輯,所以不用改 interpolation 也可以正常顯示也沒問題唷~

0
ethan
iT邦新手 5 級 ‧ 2020-10-15 20:24:46

哦哦 看懂了,就是可以自定義插值符號的意思嗎?
為什麼會看到這種東西XDD

另外我想問一個弱弱的問題,就是那個 Angular 101 的 101
常常看到程式相關會寫這個魔術數字,它代表的是什麼意思啊?

沒錯喔!
在 @Component 裡的 interpolation 這個屬性可以讓開發者自訂 HTML template 使用的插值符號 xD

101 的意思可以參考:Wiki 的解釋,大意就是給初心者的內容。

ethan iT邦新手 5 級 ‧ 2020-10-15 21:43:03 檢舉

喔喔喔 了解了 感謝
原來由來是因為學程編號的關係阿

我要留言

立即登入留言