2018年5月22日 星期二

Kendo UI MVVM 自訂Validator規則的問題 | Kendo UI MVVM custom required Validator problem

markdown

# 情境

一個Grid,裡面的row是template,
按鈕除了編輯刪除,其他按鈕案出來的視窗也是template,
在template裡面還有套template,然後都是MVVM去設定事件,
在最尾端的一個表單,要做表單驗證,
有一個欄位是radio button,多選一,當選到某值時另一文字輸入框欄位就變必填

# 問題

如何在MVVM的model中套用這個特定的required驗證

# 解題過程

我原本找到去擴充model binding的binder方法的方向
https://stackoverflow.com/questions/15945755/set-tag-attribute-based-on-variable-value-with-kendo-binding/15947852#15947852
但他要做一個html元件的跟一個widget的,名字還有邏輯,沒搞太懂;

後來轉向套用validator在表單上,雖然不太MVVM,但是可解的方法,
可是這個必填欄位不知為何在執行驗證時會跳
`n[t].call is not a function`
錯誤,後來發現 **不能把validator用的物件放在你的MVVM ViewModel**,
他在執行遍歷驗證時會抓到observable的一些屬性但無法辨識(例如`_events`)然後就跳那個錯誤,
我本來以為MVVM就是你用到的東西都塞MODEL裡就對了,不過這個情境應該不是這樣放...
再來是自訂驗證規則名稱的雷,
我原本取名`PayAccountRequired`,結果竟然讓input不是required也套上required屬性,整個鬼打牆找了很久,後來把規則名稱改成`PayAccountRule`,竟然就正常了....

從來沒想到這個驗證會讓我卡好幾個小時....

完成的範例
http://jsfiddle.net/o8ym26jj/2/

2018年5月14日 星期一

本機開發 IIS Express的虛擬目錄失效的問題 | IIS Express virtual directory setting not work

markdown

情境:
本來寫好一個上傳檔案功能,在本機開發的時候有設定虛擬路徑,檔案在
`%USERPROFILE%\documents\IISExpress\config\applicationHost.config`
結果最近在側的時候發現怎麼metadata都抓不到了,明明沒有改東西

解法
後來debug了半天發現我的檔案存放路徑不對,
就覺得是虛擬路徑失效的問題,又繼續查,
發現,其實因為中間我的IDE從vs 2013換到vs2015,
結果vs2015好像有個問題就是他不吃上面路徑的設定擋了,
新的設定檔在專案資料夾內的`.vs`資料夾(是隱藏資料夾)裡的`applicationHost.config`
在同樣的區段去新增虛擬路徑就好了

REF: https://forums.asp.net/t/2067764.aspx?VS2015+IIS+Express+cannot+create+virtual+directories