Skip to content

Instantly share code, notes, and snippets.

@cibernox
Last active October 6, 2017 08:50
Show Gist options
  • Save cibernox/574971bab5e77c125656b596d45691e7 to your computer and use it in GitHub Desktop.
Save cibernox/574971bab5e77c125656b596d45691e7 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
import RSVP from 'rsvp';
const PromiseArrayProxy = Ember.ArrayProxy.extend(Ember.PromiseProxyMixin);
function generatePromise() {
return new RSVP.Promise((resolve) => {
setTimeout(() => resolve(['one', 'two', 'three']), 5000);
});
}
function generatePromiseProxy() {
let promise = generatePromise();
return PromiseArrayProxy.create({
content: [],
promise
});
}
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
promise: ['initial', 'values'],
actions: {
refreshCollection() {
this.set('promise', generatePromiseProxy());
}
}
});
<div id="ember-basic-dropdown-wormhole"></div>
<h1>Welcome to {{appName}}</h1>
<br>
<br>
<button onclick={{action "refreshCollection"}}>Refresh collection</button>
<br>
Default loading message
{{#power-select
options=promise
selected=selected
onchange=(action (mut selected))
as |name|
}}
{{name}}
{{/power-select}}
<br>
Custom loading message (press the <code>Refresh Collection</code> button and open this select)
{{#power-select
options=promise
loadingMessage="Waiting for the server...."
selected=selected
onchange=(action (mut selected))
as |name|
}}
{{name}}
{{/power-select}}
{
"version": "0.12.1",
"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.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1",
"ember-power-select": "1.9.7"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment