Friday, 15 June 2012

javascript - How to use Ember's getters/setters on properties with dots? -



javascript - How to use Ember's getters/setters on properties with dots? -

in webapp, have model properties names dynamically generated based on info server. example, reference doing controller:

var str1 = 'property.name.with.dots'; // string server this.get('model.someproperty')[str1].integer = 2; this.get('model.someproperty')[str1].integer += 1;

but ember doesn't - says should utilize set or get function. makes sense. want in place of lastly line above:

this.get('model.someproperty.' + str1).incrementproperty('integer');

this work fine out of box if str1 didn't have dots. does, though, can ember's getters work? tried

this.get('model.someproperty')[str1].incrementproperty('integer');

but doesn't work - subobjects don't ember's methods default.

definitely

massage info before handing off ember, having dots in name cause plethora of chaining problems.

clean data, chose _ (this isn't deep cleaning, exercise fun) app.cleandata = function(result){ var response = {}, re = new regexp('\\.', 'g'), newkey; for(var key in result){ newkey = key.replace(re, '_'); response[newkey] = result[key]; } homecoming response; }; use cleaned info instead of server data app.fooroute = em.route.extend({ model: function(){ homecoming $.getjson('/foo').then(function(result){ homecoming app.cleandata(result); } } });

javascript ember.js

No comments:

Post a Comment