Skip to content

Instantly share code, notes, and snippets.

@lukesargeant
Created November 21, 2016 15:27
Show Gist options
  • Save lukesargeant/cae456ca71eb8aec353a331dee7d0e91 to your computer and use it in GitHub Desktop.
Save lukesargeant/cae456ca71eb8aec353a331dee7d0e91 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
const positiveDecimal = /^\.$|^\d+$|^\d+\.\d+$|^\-$/;
export default Ember.Component.extend({
value: '',
keyPress(event) {
const newChar = String.fromCharCode(event.which);
if (this.isCharValid(newChar)) {
const currentValue = this.get('value');
const proposedValue = currentValue + newChar;
if (this.isValueValid(proposedValue)) {
this.set('value', proposedValue);
}
}
return false;
},
isCharValid(char) {
return /^[0-9]|\.|\-$/.test(char);
},
isValueValid(proposedValue) {
// -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?
return positiveDecimal.test(proposedValue);
},
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
<input type="text" value={{value}}/>
<button>Increase value</button>
<button>Decrease value</button>
{
"version": "0.10.6",
"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.9.0",
"ember-data": "2.9.0",
"ember-template-compiler": "2.9.0",
"ember-testing": "2.9.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment