From ffedfff637f9b3da26837061ae58b242f6e2bcd7 Mon Sep 17 00:00:00 2001 From: Mike North Date: Fri, 31 Jul 2015 00:35:36 -0700 Subject: [PATCH] use Ember.get to access store, in order to accomodate some new use cases --- addon/mixins/route.js | 10 ++++++---- tests/unit/mixins/route-test.js | 17 +++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/addon/mixins/route.js b/addon/mixins/route.js index 5c1f054b..1e0b7ad3 100644 --- a/addon/mixins/route.js +++ b/addon/mixins/route.js @@ -1,5 +1,7 @@ import Ember from 'ember'; +const { get } = Ember; + /** The Ember Infinity Route Mixin enables an application route to load paginated records for the route `model` as triggered by the controller (or Infinity Loader @@ -124,7 +126,7 @@ export default Ember.Mixin.create({ */ infinityModel(modelName, options, boundParams) { - if (Ember.isEmpty(this.store) || Ember.isEmpty(this.store.find)){ + if (Ember.isEmpty(get(this, 'store')) || Ember.isEmpty(get(this, 'store').find)){ throw new Ember.Error("Ember Data store is not available to infinityModel"); } else if (modelName === undefined) { throw new Ember.Error("You must pass a Model Name to infinityModel"); @@ -155,7 +157,7 @@ export default Ember.Mixin.create({ } var params = Ember.merge(requestPayloadBase, options); - var promise = this.store.find(modelName, params); + var promise = get(this, 'store').find(modelName, params); promise.then( infinityModel => { @@ -201,7 +203,7 @@ export default Ember.Mixin.create({ options = this._includeBoundParams(options, boundParams); var params = Ember.merge(requestPayloadBase, options); - var promise = this.store.find(modelName, params); + var promise = get(this, 'store').find(modelName, params); promise.then( newObjects => { @@ -237,7 +239,7 @@ export default Ember.Mixin.create({ /** include any bound params into the options object. - @method includeBoundParams + @method includeBoundParams @param {Object} options, the object to include bound params into. @param {Object} boundParams, an object of properties to be included into options. @return {Object} diff --git a/tests/unit/mixins/route-test.js b/tests/unit/mixins/route-test.js index d0e0f0db..52b9c3b6 100644 --- a/tests/unit/mixins/route-test.js +++ b/tests/unit/mixins/route-test.js @@ -12,6 +12,7 @@ test('it works', assert => { test('it can not use infinityModel without Ember Data Store', assert => { var RouteObject = Ember.Route.extend(RouteMixin, { + store: null, model() { return this.infinityModel('post'); } @@ -73,7 +74,7 @@ test('it sets state before it reaches the end', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -110,7 +111,7 @@ test('it allows customizations of request params', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -142,7 +143,7 @@ test('it allows customizations of meta parsing params', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -176,7 +177,7 @@ test('it sets state when it reaches the end', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -218,7 +219,7 @@ test('it uses extra params when loading more data', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -280,7 +281,7 @@ test('it uses overridden params when loading more data', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -338,7 +339,7 @@ test('it uses bound params when loading more data', assert => { } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => { @@ -401,7 +402,7 @@ test('it allows overrides/manual invocations of updateInfinityModel', assert => } }; - route.store = dummyStore; + route.set('store', dummyStore); var model; Ember.run(() => {