Skip to content

Instantly share code, notes, and snippets.

@patricklx
Last active August 29, 2015 14:08
Show Gist options
  • Save patricklx/421af531bc00d90981e8 to your computer and use it in GitHub Desktop.
Save patricklx/421af531bc00d90981e8 to your computer and use it in GitHub Desktop.
emberjs helper to loop over object attributes
import Ember from 'ember';
export default function(path, options) {
var buffer = "",
key;
var object = null;
var p = path.split('.');
var keyword = p[0];
var o = options.data.view.getStream(keyword).value();
if (o) {
if( !o.get ){
o = Ember.Object.create(o);
}
p[0] = 'this';
p = p.join('.');
object = o.get(p);
} else {
if (!this.get) {
var emberThis = Ember.Object.create(this);
object = emberThis.get(path);
} else {
object = this.get(path);
}
}
for (key in object) {
if (object.hasOwnProperty(key)) {
data = options.data;
//TODO: fix this, maybe with childviews
data.view.getStream('name').setSource(key);
data.view.getStream('value').setSource(object.get ? object.get(key) : object[key]);
buffer += options.fn(object, {data: data});
delete data.view._contextStream.children['name'];
delete data.view._contextStream.children['value'];
}
}
return buffer;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment