ember install @ember-decorators/runloop
In your application where you use ES6 classes:
import Component from '@ember/component';
import { debounce } from "@ember/runloop";
import { action } from "@ember-decorators/object";
export default class TypeAhead extends Component {
fetchResults(searchValue) {
...
},
@action
handleTyping() {
debounce(this, get(this, 'fetchResults'), get(this, 'searchValue'), 250);
}
}
You replace it with this:
import Component from '@ember/component';
import { debounce } from "@ember-decorators/runloop";
import { action } from "@ember-decorators/object";
export default class TypeAhead extends Component {
@debounce(250)
fetchResults(searchValue) {
...
},
@action
handleTyping() {
get(this, 'fetchResults')(get('searchValue'));
}
}
In your application where you use ES6 classes:
import Component from '@ember/component';
import { throttle } from "@ember/runloop";
import { action } from "@ember-decorators/object";
export default class TypeAhead extends Component {
fetchResults(searchValue) {
...
},
@action
moveMouse() {
throttle(this, get(this, 'fetchResults'), get(this, 'searchValue'), 250);
}
}
You replace it with this:
import Component from '@ember/component';
import { throttle } from "@ember-decorators/runloop";
import { action } from "@ember-decorators/object";
export default class TypeAhead extends Component {
@throttle(250)
fetchResults(searchValue) {
...
},
@action
moveMouse() {
get(this, 'fetchResults')(get('searchValue'));
}
}
In your application where you use ES6 classes:
import Component from '@ember/component';
import { schedule } from "@ember/runloop";
export default class TypeAhead extends Component {
fetchResults(searchValue) {
...
},
didInsertElement() {
schedule('afterRender', this, get(this, 'fetchResults'), get(this, 'searchValue'));
}
}
You replace it with this:
import Component from '@ember/component';
import { schedule } from "@ember-decorators/runloop";
export default class TypeAhead extends Component {
@schedule('afterRender')
fetchResults(searchValue) {
...
},
didInsertElement() {
get(this, 'fetchResults')(get('searchValue'));
}
}
This README outlines the details of collaborating on this Ember addon.
git clone <repository-url>
this repositorycd runloop
npm install
ember serve
- Visit your app at http://localhost:4200.
npm test
(Runsember try:each
to test your addon against multiple Ember versions)ember test
ember test --server
ember build
For more information on using ember-cli, visit https://ember-cli.com/.