Skip to content

Instantly share code, notes, and snippets.

@craigteegarden
Created January 5, 2017 02:18
Show Gist options
  • Save craigteegarden/c19e1acfb15626c0cc23a9d6b44f2803 to your computer and use it in GitHub Desktop.
Save craigteegarden/c19e1acfb15626c0cc23a9d6b44f2803 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
showHasComments: false,
showHasCommentsTriggersFetch: false,
actions: {
toggle(propertyName) {
this.toggleProperty(propertyName);
}
}
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
export default Model.extend({
title: DS.attr('string'),
body: DS.attr('string'),
comments: DS.hasMany('comment', { async: true} ),
hasComments: Ember.computed('comments', function() {
return this.hasMany('comments').ids() > 0;
}),
hasCommentsTriggersFetch: Ember.computed.gt('comments.length', 0)
});
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
this.store.push({
data: [{
id: 1,
type: 'my-model',
attributes: {
"title": "some cats are cool",
"body": "",
},
relationships: {
"comments": {
"data": [{"id": "5", "type": "comment"}]
}
}
}]
});
return this.store.peekRecord('my-model', 1);
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
{{model}}
<br><br>
<div>Won't trigger an async fetch for comments</div>
<button {{action "toggle" "showHasComments"}}>Show hasComments</button>
{{#if showHasComments}}
{{model.hasComments}}
{{/if}}
<br><br>
<div>Will trigger an async fetch for comments (check out console)</div>
<button {{action "toggle" "showHasCommentsTriggersFetch"}}>Show hasCommentsTriggersFetch</button>
{{#if showHasCommentsTriggersFetch}}
{{model.hasCommentsTriggersFetch}}
{{/if}}
<br>
{
"version": "0.10.7",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.10.0",
"ember-data": "2.5.5",
"ember-template-compiler": "2.10.0",
"ember-testing": "2.10.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment