2014-12-20 16 views
7

tôi có một đối tượng như:căn cứ hỏa lực sẽ không tiết kiệm phím với các giá trị null

var _json = { "objects":[{ 
    "type":"path", "originX":"center", "originY":"center", "left":48.59, 
    "top":132.5, "width":64.5,"height":173, "fill":null,"stroke":"#3f7cc4", 
    "strokeWidth":12,"strokeDashArray":null 
}]} 

tôi tiết kiệm đối tượng này sử dụng căn cứ hỏa lực như:

var myDataRef = new Firebase(<...>); 
myDataRef.child("saved_projects").child(authData.uid).update({'P3': _json}); 

Nhưng, khi tôi lấy cùng sử dụng căn cứ hỏa lực on và nhận giá trị là:

snapshot.val() 

Tôi nhận đối tượng nhưng phím có null giá trị bị loại bỏ ví dụ: Tôi chỉ có:

{"objects":[ {"type":"path", "originX":"center", 
"originY":"center","left":48.59, "top":132.5,"width":64.5, 
"height":173, "stroke":"#3f7cc4","strokeWidth":12 
}]} 

này đang gây ra cho tôi một số vấn đề lạ kể từ khi tôi đang sử dụng Fabric.js và nó cần những giá trị này. Xin vui lòng giúp đỡ!

EDIT/UPDATE (Hack)

Đối với thời điểm hiện tại, tôi đang sử dụng một HACK lạ, trước khi lưu trữ các đối tượng để căn cứ hỏa lực tôi đang chuyển đổi tất cả các null giá trị cho 0. Nhưng tôi muốn biết một cách tốt hơn để làm.

function recursivelyReplaceNullToZero(j) { 
    for (var i in j){ 
     if (typeof j[i] === "object") { 
      recursivelyReplaceNullToZero(j[i]); 
     } 
     if (j[i] === null) { 
      j[i] = 0; 
     } 
    } 
} 
recursivelyReplaceNullToZero(_json); 
+5

Firebase loại bỏ các nút có giá trị null, chúng tôi không thể giúp bạn nhiều ở đó. https://www.firebase.com/docs/web/api/firebase/set.html "Truyền giá trị mới cho giá trị mới tương đương với gọi remove(); tất cả dữ liệu tại vị trí này hoặc bất kỳ vị trí con nào đều sẽ bị xóa". –

+1

Điều này trông giống như một [vấn đề XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378) và bạn có lẽ nên bắt đầu với việc sử dụng (thiếu sót) trường hợp bạn đang cố gắng giải quyết. – Kato

Trả lời

2

Đối với thời điểm hiện tại tôi đang sử dụng một HACK lạ, trước khi lưu trữ các đối tượng để căn cứ hỏa lực tôi đang chuyển đổi tất cả các giá trị null để 0. Nhưng tôi muốn biết cách đẹp hơn nhiều, xin vui lòng!

function recursivelyReplaceNullToZero(j) { 
    for (var i in j){ 
     if (typeof j[i] === "object") { 
      recursivelyReplaceNullToZero(j[i]); 
     } 
     if (j[i] === null) { 
      j[i] = 0; 
     } 
    } 
} 
recursivelyReplaceNullToZero(_json); 
Các vấn đề liên quan