2013-12-18 2 views
1

У меня есть регистрация нового адаптера на DS.Store. Чтобы дать вам некоторый контекст о том, что я пытаюсь выполнить ... Некоторые из моделей в моем приложении ember должны обращаться к различным API-интерфейсам, поэтому я не могу использовать один RESTAdapter. Вместо этого я пытаюсь создать несколько адаптеров (по одному для каждого API, который мне нужен). Мой план состоит в том, чтобы иметь один DS.Store для всего приложения и связать мои пользовательские адаптеры с правильными моделями. Я пытался это сделать, используя DS.Store.registerAdapter, но я получаю сообщение об ошибке, которое говорит о том, что «registerAdapter» не может быть найден на объекте DS.Store.Ember Data registerAdapter не найден

Вот мой код, что я работаю с:

/* FILE: adapters/store.js: */ 
    import AnalyticsAdapter from 'appkit/adapters/analytics'; 
    import MetricsModel from 'appkit/models/metrics'; 

    // This line is the one that is throwing the error... 
    DS.Store.registerAdapter(MetricsModel, AnalyticsAdapter); 
    var Store = DS.Store.create(); 
    export default Store; 
    /* END adapters/store.js */ 


    /* FILE: adapters/analytics.js: */ 
    var AnalyticsAdapter = DS.Adapter.extend({}); 
    export default AnalyticsAdapter; 
    /* END adapters/analytics.js */ 


    /* FILE: models/metrics.js: */ 
    import AnalyticsAdapter from 'appkit/adapters/analytics'; 
    var MetricsModel = Ember.Object.extend({ 
    startDate: null, 
    endDate: null, 
    revenue: 0, 
    starts: 0 
    }); 
    export default MetricsModel; 
    /* END models/metrics.js */ 

Когда я пытаюсь запустить приведенный выше код в браузере, я получаю ошибку о том, что метод «registerAdapter» не найден. Я просмотрел документы Ember Data, и я не вижу метод registerAdapter, но почти все решения, которые я нашел в Интернете, используют этот метод. Есть ли у кого-нибудь какие-либо предложения о том, как я могу выполнить то, что я пытаюсь выполнить?

Спасибо! - JMG

ответ

0

Я никогда не слышал о registerAdapter, может быть, он старый.

var AnalyticsAdapter = DS.Adapter.extend({}); 
export default AnalyticsAdapter; 



var MetricsAdapter = AnalyticsAdapter.extend({}); 
export default MetricsAdapter; 
+0

Большое спасибо за Ваш ответ. MetricsModel действительно должен быть моделью, а не адаптером. MetricsModel - это модель, которая будет сохранена/извлечена, и я надеялся использовать AnalyticsAdapter в качестве адаптера для подключения MetricsModel к API. Будет ли описанный выше код? Мне кажется, что MetricsAdapter будет распространяться на DS.Adapter, а не на Ember.Object. Я действительно думаю, что мне нужен либо Ember.Object, либо DS.Model. Возможно, я не объяснил это в моем описании;) –

+0

В приведенном выше коде будет создан пользовательский адаптер для модели показателей, и да, ваши показатели должны быть DS.Model.extend – Kingpin2k

+0

http://emberjs.jsbin.com/ OxIDiVU/11/редактировать – Kingpin2k