refactor #each item mutable data pattern

This commit is contained in:
David Greenspan
2013-09-18 19:22:13 -07:00
parent 3616a96053
commit bb0332ffac

View File

@@ -52,20 +52,20 @@ UI.Each = Component.extend({
var data = item;
var dep = new Deps.Dependency;
// XXX dynamically rendering a child component
// shouldn't be this hard...
// function to become `comp.data`
var dataFunc = function () {
dep.depend();
return data;
};
// Storing `$set` on `comp.data` lets us
// access it from `changed`.
dataFunc.$set = function (v) {
data = v;
dep.changed();
};
var comp = UI.render(
content,
{ data: _extend(
function () {
dep.depend();
return data;
}, {
$set: function (v) {
data = v;
dep.changed();
}
}) }, self);
content, { data: dataFunc }, self);
if (beforeId)
beforeId = LocalCollection._idStringify(beforeId);