Ember.PromiseProxyMixin Class packages/ember-runtime/lib/mixins/promise_proxy.js:23
Defined in: packages/ember-runtime/lib/mixins/promise_proxy.js:23
Module: ember-runtime
A low level mixin making ObjectProxy, ObjectController or ArrayController's promise aware.
1 2 3 4 5 6 7 8 9 10 11 |
var ObjectPromiseController = Ember.ObjectController.extend(Ember.PromiseProxyMixin); var controller = ObjectPromiseController.create({ promise: $.getJSON('/some/remote/data.json') }); controller.then(function(json){ // the json }, function(reason) { // the reason why you have no json }); |
the controller has bindable attributes which track the promises life cycle
1 2 3 4 |
controller.get('isPending') //=> true controller.get('isSettled') //=> false controller.get('isRejected') //=> false controller.get('isFulfilled') //=> false |
When the the $.getJSON completes, and the promise is fulfilled with json, the life cycle attributes will update accordingly.
1 2 3 4 |
controller.get('isPending') //=> false controller.get('isSettled') //=> true controller.get('isRejected') //=> false controller.get('isFulfilled') //=> true |
As the controller is an ObjectController, and the json now its content, all the json properties will be available directly from the controller.
1 2 3 4 5 6 7 8 9 |
// Assuming the following json: { firstName: 'Stefan', lastName: 'Penner' } // both properties will accessible on the controller controller.get('firstName') //=> 'Stefan' controller.get('lastName') //=> 'Penner' |
If the controller is backing a template, the attributes are bindable from within that template