TypeScript是強型別的世界,透過預先宣告物件、屬性、方法、介面,在編輯階段提供Intellisense提示、Go Definition、Find All References、Rename... 等編譯式語言才有的功能,而編譯時可預先抓出參數、型別、方法錯誤,降低執行階段發現修復的高昂成...

網友kcw問了一個好問題,提到計算型屬性函數出現會重覆執行兩次的現象! 一句話點醒我夢中人,嚇得我屁滾尿流失了魂~~~ 花了點時間研究,才發現原來我學藝不精,一直沒搞通Angular的屬性相依運作原理,時常誤用KO概念思考。謝謝kcw的問題,讓我釐清一塊暗藏地雷的危險地帶。(註: 相依性追...

接獲報案,在Visual Studio 2012若建立HTML Application with TypeScript專案(如下圖),.ts可順利產生.js及.js.map,運作正常。 但是若建立的是一般ASP.NET網站專案(Visual C#/Web下的項目),可以新增及編輯.ts,編...

第16馬,石碇馬拉松。 馬拉松是一種運動,夏天的馬拉松是一種"極限運動",在夏天跑山路馬是一種"燃燒生命的極限運動"... Orz 當石碇馬拉松的簡章出來,明知是盛夏,明知有爬不完的山路,衝著石碇離家不遠,又是七小時關門,手一滑就報了名。老早報好名,...

復刻對象: KO範例3 - 動態新增下拉選單選項。 先示範一個失敗寫法。在KO範例裡,新增選項按鈕不包含在ViewModel範圍內,而是透過jQuery click事件在選項集合新增物件,而選項集合是ko.observabelArray(),KO能感測到新增動作,同步增加下拉選單選項;但同樣做...

復刻對象: KO範例2 - 下拉選單。 在NG,下拉選單(<select>)跟<input>一樣用ng-model="..."建立雙向繫結,如要透過繫結動態產生選項,可用ng-options Directive。ng-options的語法較特別,需...

記得四年前微軟就正式宣告建議大家不要再用System.Data.OracleClient,改用ODP.NET。當時Oracle對LINQ支援還不太好,想用LINQ或EF得尋求3rd Party解決方案,從ODAC 11.2起,Entity Framework已是ODP.NET標準配備,Syste...

進行Angular單元測試時,在Class Library(類別庫)新增TypeScript測試檔,使用Chutzpah測試正常,但我發現Class Library專案裡的TypeScript,不像在ASP.NET Web專案裡會自動產生.js檔,Chutzpah似乎是靠自己的機制編譯TypeS...

自動測試是AngularJS架構的重要一環,官方文件有專章討論單元測試,程式庫則有ngMock提供單元測試所時的DI及Mocking(假物件模擬)支援。本篇將討論如何在Visual Studio 2013對Controller及ViewModel進行單元測試。 開始之前,Visual Stud...

用Angular維護的SPA專案重頭戲都在前端,為避免JavaScript愈寫愈亂,失控長成哥吉拉的災難上演,決心在專案改用TypeScript,期望靠著強型別編譯檢查保平安。這裡就以上一篇文章的簡單NG程式為例,示範如何用Visual Studio 2013 Update 2 + TypeScr...

MVVM是前端Framework的重要功能,AngularJS當然也有強大好用的資料繫結及模板(Template)機制,才能橫掃江湖。我們就從最簡單的"計算型屬性"開始,順便介紹Angular程式的基本架構。 (註: AngularJS採取的應該是MVC設計模式,但依我的理解,資料繫結、模板...