[食譜好菜] AngularJS 的 ngBind、{{ }}、ngBindHtml、ngBindTemplate 資料綁定
AngularJS 的 ngBind
系列算是最基本的,也是大部分一開始會碰到的資料綁定語法,它讓我們在想要 HTML 元素內綁定變數資料,算是最入門的資料綁定語法。
[廚餘回收] Windows 10 無法關機
- 2071
- 0
- Windows 10
今天下班時,把我的 Dell XPS 15 9550 關機,上個廁所回來卻發現怎麼 Power 燈還亮著!?
滑鼠移動一下,居然出現了登入畫面!?而且還切換成飛航模式!
[料理佳餚] 從 ng-iScroller 來探究 Directive 這個 AngularJS 接地氣的神器
過去我們收集了很多 JavaScript 或是 jQuery 很好用的第三方元件,而用了 AngularJS 之後,這些第三方元件就廢掉了? - 非也。
AngularJS 是用 JavaScript 寫成的框架,並沒有限制與其他用 JavaScript 預先寫好的程式碼做結合,只是我們必須要 follow AngularJS 框架本身的 rule 而已。
我們可以將這些很好用的第三方元件做成 Directive 繼續延用,我就以一個別人寫好的 iScroll Directive 來做為範例,說明一下怎樣把第三方元件做成 Directive。
[食譜好菜] AngularJS 的神兵利器之一 - Directive
在[食譜好菜] AngularJS 基本術語及生命週期裡面有介紹到 Directive 主要分成兩種類型:行為的修飾詞(Modifier)、可重用的元件(Component),目的是給我們產生有意義的宣告,簡單來講就是實現抽象化,Directive 的使用者不需要也不必了解項目的運作方式,只要關注最終的結果就行了,我們來看一下如何建立 Directive?以及它有哪些基本的屬性?
[食譜好菜] AngularJS 基本術語及生命週期
這篇講的是 AngularJS 1.x,寫文章的當下 AngularJS 2.0 已經 RC5 了,已知 AngularJS 2.0 是不會向下相容 1.x 的。
那我為什麼還要寫 AngularJS 1.x 的文章呢? - 用來幫助我回憶的!
以前花時間閱讀跟學習的技術,隨著時間以及很少用到,記憶會慚慚淡化,趁現在還記得幾分趕快做個筆記,尤其是技術背後本身的概念及限制,這些都會影響到我們掌握一門技術的程度。
[料理佳餚] Dapper 自定義欄位對應的三種方式
看到一段某公司對外服務的系統的程式碼,這段程式碼寫好不到一年,而這段程式碼在做一件事情,把從資料庫撈到的資料轉成物件集合,做法就是用 ADO.NET 產生 SqlDataReader,再將 SqlDataReader 丟到一個靜態方法,在靜態方法裡面逐筆讀取資料,接著透過 Reflection 動態地產生物件集合,但是物件的 Property Name 就遷就 ColumnName,一整個怪啊!
如果我們要練習 Reflection 的用法,這是個非常好的練習,但是要用在 Production 上我們還有 Dapper 可以選擇,搭配我接下來要介紹的三種自定義欄位對應方式,我相信怎樣都比自己寫 Reflection 來得好。
[小菜一碟] 偽造 ClaimsIdentity 為 Controller Action 做有身份識別的單元測試
我在之前的專案有使用過 ASP.NET Identity 來幫我做驗證的工作,ASP.NET Identity 的出現為驗證身份的方式帶來了更大的彈性,不過如何使用不是這道菜的重點,這道料理要展現的是,當我們為 Controller Action 做有身份識別的單元測試時,我們要如何偽造不同的身份來滿足測試情境?
[料理佳餚] 在 Entity Framework 使用 Expression 黑魔法做動態條件查詢
- 4180
- 0
- Entity Framework
- 2016-07-25
使用 Entity Framework 大都會搭配 Lambda Expression 到資料庫去 Query 資料出來,但是通常我們只能在程式碼中先寫好查詢的條件,當遇到不同條件的時候就要再寫一組查詢的條件,那我們能不能寫一個查詢條件的產生器,可以依照我丟進去的條件參數,幫我產生不同組合的查詢條件?
[料理佳餚] AutoMapper 中不容忽視的 Ignore() Mapping 的順序
- 4298
- 0
- AutoMapper
在有繼承關係的類別中使用 AutoMapper 為整個繼承鏈的類別做 OOM 有很多眉角需要注意,包含使用 Include 語法宣告所有派生類別的對應,以及為所有派生類別明確地建立對應地圖,就在前幾天我踩到了 Ignore() 的地雷...