Skip to content

Instantly share code, notes, and snippets.

@swquinn
Last active October 8, 2016 19:53
Show Gist options
  • Save swquinn/10740a222f78f1633fb1aebaec52f291 to your computer and use it in GitHub Desktop.
Save swquinn/10740a222f78f1633fb1aebaec52f291 to your computer and use it in GitHub Desktop.
Initial Value Presence Changeset Validation
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";
export default Model.extend({
//subject: attr(),
//text: attr()
});
import Ember from 'ember';
import lookupValidator from 'ember-changeset-validations';
import validations from '../validations/presence-and-length';
export default Ember.Route.extend({
model() {
let post = this.store.createRecord('post');
return new Changeset(post, lookupValidators(validations));
}
});
<h1>Welcome to {{appName}}</h1>
<div>
<form>
<div class="subject">
<div>
<label>Subject</label>
</div>
{{input value=(mut changeset.subject)}}
</div>
<div class="text">
<div>
<label>Text</label>
</div>
{{textarea value=(mut changeset.text)}}
</div>
{{#if changeset.isInvalid}}
<p>There were errors in your form:</p>
<ul>
{{#each changeset.errors as |error|}}
<li>{{error.key}}: {{error.validation}}</li>
{{/each}}
</ul>
{{/if}}
<div>
<button {{action "submit"}}>Submit</button>
</div>
</form>
</div>
{
"version": "0.10.5",
"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.8.0",
"ember-data": "2.8.0",
"ember-template-compiler": "2.8.0",
"ember-testing": "2.8.0"
},
"addons": {
"ember-changeset": "1.1.2",
"ember-changeset-validations": "1.2.0"
}
}
import {
validatePresence,
validateLength
} from 'ember-changeset-validations/validators';
export default {
text: [
validatePresence(true),
validateLength({ min: 10 })
]
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment