當使用雙向綁定時,Angular將expando屬性,「哈希」等添加到我的深層對象結構中。這很好,但我有興趣只用原來屬於那裏的東西來檢索對象樹的JSON快照。 Angular是否提供了獲取綁定對象的「vanilla」版本的方法?「Un Angularize」JS對象的快速方法
(我不希望在結合前踢僅僅存放「原始值」,因爲我想,以反映通過用戶界面所做的任何更改)
當使用雙向綁定時,Angular將expando屬性,「哈希」等添加到我的深層對象結構中。這很好,但我有興趣只用原來屬於那裏的東西來檢索對象樹的JSON快照。 Angular是否提供了獲取綁定對象的「vanilla」版本的方法?「Un Angularize」JS對象的快速方法
(我不希望在結合前踢僅僅存放「原始值」,因爲我想,以反映通過用戶界面所做的任何更改)
簡短的回答:
有內置的功能一個不錯:
angular.toJson(yourObj);
更詳細的解釋:
angular.toJson和JSON.stringify之間的唯一區別是它通過一個過濾器來運行它,該過濾器會去除散列/ id並將窗口,文檔和範圍轉換爲字符串。如果你想推出自己的函數來做到這一點:這裏是來自Angular.JS源代碼相關的片斷:
if(/^\$+/.test(key)) {
val = undefined;
} else if (isWindow(value)) {
val = '$WINDOW';
} else if (value && document === value) {
val = '$DOCUMENT';
} else if (isScope(value)) {
val = '$SCOPE';
}
注:的isWindow
和isScope
功能都沒有出口,所以你需要一點點更多的黑客讓該功能以完全相同的方式工作。
來源:http://docs.angularjs.org/api/angular.toJson和https://github.com/angular/angular.js/blob/master/src/Angular.js
還有一個angular.fromJSon
功能基本上是JSON.parse
。
更新值得注意的是,當您爲$ http請求指定模型爲data
時,$ http服務會自動爲您執行此操作。
這就是我需要的 - 非常感謝你! – blaster 2013-05-14 16:49:18
您可以添加小提琴演示來展示物體如何變髒嗎? – Stewie 2013-05-14 16:20:53