即将到來的 angularjs 1.3 版本會放出對提升表單資料操作的重點關注. 而這次的版本解決了一些真正的痛點,對于一些開發者而言,這次的版本可能不是一次自動更新(言下之意就是需要開發者自己做一些額外的事情).
angularjs 團隊推出1.3版的候選版本。在一份 google+ 貼子 上 angular 團隊寫到:
1.3版的大多數api已經做出了裁定,而接下來版本一直到1.3.0穩定版将會修複遺留的bug.
1.3 的一些特性如下:
新的驗證器管道
異步的自定義驗證器
模型資料綁定選項
用于錯誤消息重用的 ngmessages 子產品
對一次性資料綁定的支援
最新版為開發者提供了建立自定義驗證器的新方法, 去除了對使用轉換和格式化裝置的需求. 為了在1.3中建立一個自定義的驗證器,開發者必須在新的$validators管道上注冊這個驗證器并傳回true或者false:
matias niemela是一名angular貢獻者,他寫了一篇文章 概述了新的表單特性 包括為提供基于伺服器的驗證建立異步驗證器的新功能. matias 同時也指出了對html5驗證器的提升:
現在所有的 html5 驗證屬性都被綁定到ngmodel,它們的錯誤消息都注冊到了 ngmodel.$error
angular 團隊在版本1.3中引入了重大的修改,一些開發者抱怨這次重大修改應該要帶來一次主版本的更新(比如. 版本 2.0). 在最近的一次 github 評論上 chad moran(woot的軟體開發經理)警告道:
做出重點修改卻不提升主版本号,很有可能給使用者帶來很多的痛苦.
潛在的會影響到企業開發者的變化就是1.3版不再支援ie8. 自從 angular 團隊在它們 2013年12月的部落格上 公布了這個事情,開發者已經發出了大量的警告. 這個修改的背後的部分原因是 1.3 隻支援 jquery 2.1 或者以上版本,而jquery在版本2.x去掉了對ie8的支援.
在angular的早期版本中,顯示表單驗證錯誤消息就是結合 ng-if 指令和許多布爾邏輯來在對的時間展示恰當的錯誤消息,這樣的操作. 版本1.3引入了 ngmessages 子產品,作為一種處理複雜驗證錯誤消息的更新方式. 下面是來自 yearofmoo.com 部落格文章 的有關這個新文法的示例:
據niemela所述, 不僅在于減少了代碼的行數,新的ng-message子產品将”解決一條錯誤消息在另外一條錯誤消息之前顯示的複雜性"。