2019年7月11日 星期四

Swift 的value binding


在 Swift 中,有個 value binding 過程,覺得蠻有趣的。
譬如:
var str:String?

表示 str 的型態是 String,而且可以支援 nil。

if let tmp=str
{
   print("tmp is \(tmp)")
}

上面這段程式是說,如果 str 不是 nil ,就將 str 指派給 tmp;相反地,如果 str 是 nil,就不會把 str 指派給 tmp,而這個 if 的判斷式就不成立了,也就不會執行下面那行    print("tmp is \(tmp)”)。
這過程就叫做 value binding,有同時確保 tmp 一定會有值

更妙的,是 swift 可以允許 = 號左右兩邊都取同樣名稱的變數,也就是說,下面寫法也是成立的:

if let str=str
{
   print("str is \(str)")
}

這樣子的寫法,的確清爽許多,但如果沒事先理解箇中原委,實在無法想像為何程式可以這樣寫。

2019年7月5日 星期五

Angular 如何使用自訂的 CSS 呢?


雖然 Angular 每個 component 下面有自己的 CSS 檔,但如果人家心中早已有屬意的對象時,要怎麼辦呢?


如上圖,我已經在 /ang-css/src/assets/css/pic.css 有了既有的 CSS 設定檔了,想在 app component 裡直接引用他。

01.打開 /ang-css/src/app/app.component.css

@import url("../assets/css/pic.css");

02. 確認 app.component.ts 的 styleUrls 有設定為 app.component.css


03.在 html 樣板中(app.component.html),就可以呈現我們指定 CSS 的效果了




參考: Angular 6 - How to apply external css stylesheet (leaflet) at component level?


2019年7月4日 星期四

在 Ubuntu 安裝 Angular


在 Ubuntu 安裝 Angular

環境:
Virtual Box 6.0
Host: Win10 企業版
Client:Ubuntu 18.04.2 LTS


1.安裝 curl。
待會會透過 curl 來安裝 node.js,如果系統沒有 curl ,可以透過下面指令安裝

狀況一:dpkg 作業遭中斷,必須手動執行 'sudo dpkg --configure -a' 以修正問題。

這問題很清楚,答案也很明顯。就直接執行
sudo dpkg --configure -a

狀況二:相依問題。


執行:sudo apt-get -f install

然後再回頭執行剛剛失敗的指令:
sudo dpkg --configure -a
sudo apt install curl

2.安裝 Node.js
目前最新版本已經是 12 ,
執行下面兩行指令:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

3.將 NPM 更新到最新版
sudo npm install npm@latest -g

4.安裝 Angular CLI
sudo npm install -g @angular/cli

5.建立一個 Angular 新專案試試
ng new awesome-project

狀況一:出現 EACCES: permission denied 錯誤


執行下面指令:
sudo npm cache clean --force --unsafe-perm

再重新建一個 Angular 專案
ng new myapp01

狀況二:雖然專案可以正常執行,但出現﹔npm update check failed


就按照說明,直接執行一行指令  
sudo chown -R $USER:$(id -gn $USER) /home/paladin/.config

下次再新增專案時,就不會出先 npm update check failed 的訊息了

6.啟動新專案
cd myapp01
ng serve --open


完成了!!