Skip to content

Instantly share code, notes, and snippets.

@offirgolan
Created January 18, 2017 00:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save offirgolan/95b9f35905fe532f543210548a7989a9 to your computer and use it in GitHub Desktop.
Save offirgolan/95b9f35905fe532f543210548a7989a9 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Model from "ember-data/model";
import attr from "ember-data/attr";
import { belongsTo, hasMany } from "ember-data/relationships";
import { buildValidations, validator } from 'ember-cp-validations';
const Validations = buildValidations({
promise: validator('number', {
dependentKeys: ['model.promise.content'],
value(model) {
console.log(model.get('promise.isFulfilled'));
return model.get('promise.content');
},
allowString: false,
integer: true,
gt: 500
})
});
export default DS.Model.extend(Validations, {
value: attr('string'),
promise: Ember.computed('value', function() {
let promise = new Ember.RSVP.Promise((resolve) => {
Ember.run.later(() => resolve(getRandomInt(1, 1000)), 500);
});
return DS.PromiseObject.create({ promise });
})
});
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('user');
}
});
<p>
Type in the input to update the PromiseObject CP.
<br>
<br>
If the resolved value is less than 500, the validation should fail and should return false.
</p>
{{input value=(mut model.value) placeholder="Type here to update the promise"}}
<div>
{{model.promise.content}} {{model.validations.attrs.promise.isValid}}
</div>
{
"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.10.0",
"ember-template-compiler": "2.10.0",
"ember-testing": "2.10.0"
},
"addons": {
"ember-cp-validations": "3.1.5"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment