import Controller from '@ember/controller'; import { inject as service } from '@ember/service'; import { get } from '@ember/object'; export default Controller.extend({ builder: service('form'), dom: service('dom'), init: function() { this._super(...arguments); this.form = get(this, 'builder').form('acl'); }, setProperties: function(model) { // essentially this replaces the data with changesets this._super( Object.keys(model).reduce((prev, key, i) => { switch (key) { case 'item': prev[key] = this.form.setData(prev[key]).getData(); break; } return prev; }, model) ); }, actions: { change: function(e, value, item) { const event = get(this, 'dom').normalizeEvent(e, value); get(this, 'form').handleEvent(event); }, }, });