Skip to content

Instantly share code, notes, and snippets.

@LevelbossMike
Last active June 27, 2018 15:08
Show Gist options
  • Select an option

  • Save LevelbossMike/334fcddec6fdeabc495c5a85de28a7f9 to your computer and use it in GitHub Desktop.

Select an option

Save LevelbossMike/334fcddec6fdeabc495c5a85de28a7f9 to your computer and use it in GitHub Desktop.
Changeset/buffers when proxying models with computeds
import Ember from 'ember';
import Proxy from 'ember-buffered-proxy/proxy';
import Changeset from 'ember-changeset';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
model: Ember.computed(function() {
return Ember.Object.extend({
fullName: Ember.computed('name', function() {
return `FullName: ${this.get('name')}`;
})
}).create({ name: 'Tomster'});
}),
buffer: Ember.computed('model', function() {
return Proxy.create({ content: this.get('model')})
}),
changeset: Ember.computed('model', function() {
return new Changeset(this.get('model'));
})
});
<h1>Welcome to {{appName}}</h1>
<br>
Model
<br>
<div>Name: {{model.name}}</div>
<div>computed: {{model.fullName}}</div>
<br>
Buffer
<div>Buffer-Name: {{buffer.name}}</div>
<div>computed: {{buffer.fullName}}</div>
<br>
<br>
Changeset
<div>Changeset-Name: {{changeset.name}}</div>
<div>computed: {{changeset.fullName}}</div>
<br>
<button onClick={{action (mut model.name) 'Tomhuda'}}>Change model</button>
<button onClick={{action (mut buffer.name) 'Tomhuda'}}>Change buffer</button>
<button onClick={{action (mut changeset.name) 'Tomhuda'}}>Change changeset</button>
{{outlet}}
<br>
<br>
<p>Outcome: buffering model computeds does not work on proxy-buffer nor on ember-changeset</p>
<p>related <a href="https://github.com/poteto/ember-changeset/issues/159#issuecomment-288213869">comment</a> from @sugarpirate on ember changeset </p>
{
"version": "0.14.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "2.18.2",
"ember-template-compiler": "2.18.2",
"ember-testing": "2.18.2"
},
"addons": {
"ember-data": "2.18.2",
"ember-buffered-proxy": "1.0.0",
"ember-changeset": "1.5.0-beta.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment