From 2c1aec1f4d7b2ca03cb9911feeb8a9d1d66f9826 Mon Sep 17 00:00:00 2001 From: Eric Guzman Date: Fri, 25 May 2012 16:34:21 -0700 Subject: Data Binding - Hacked patch to Montage to enable serialization of dynamically bound objects. We should remove this once montage github issue [gh-657] is in our version of montage. --- node_modules/montage/core/event/binding.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'node_modules/montage/core/event') diff --git a/node_modules/montage/core/event/binding.js b/node_modules/montage/core/event/binding.js index 2e226372..c10c52e4 100755 --- a/node_modules/montage/core/event/binding.js +++ b/node_modules/montage/core/event/binding.js @@ -343,9 +343,31 @@ var BindingDescriptor = exports.BindingDescriptor = Montage.create(Montage, /** }); Serializer.defineSerializationUnit("bindings", function(object) { - var bindingDescriptors = object._bindingDescriptors; + var bindingDescriptors = object._bindingDescriptors, + bindingDescriptorsCopy; + + // TODO: Hacked this function to create copy of object literal + // TODO: Remove when montage finds out how to identify object literals + // TODO: in a different way + function cloneObject(object, level) { + var clone = {}; + + for (var key in object) { + if (level > 0) { + clone[key] = cloneObject(object[key], level - 1); + } else { + clone[key] = object[key]; + } + } + + return clone; + } if (bindingDescriptors) { + if (Object.getPrototypeOf(bindingDescriptors) !== Object.prototype) { + bindingDescriptors = cloneObject(bindingDescriptors , 1); + } + return bindingDescriptors; } }); -- cgit v1.2.3