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