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

情境

一個 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/