2014-07-22 10 views
13

Próbuję uzyskać mój model ember do korzystania z api zdalnego szyny. Próbowałem już rozszerzyć DS.RESTAdapter, ale nie wiem, jak powiedzieć modelowi, aby używał tych ustawień. Mój model nigdy nie dociera do localhost: 3000.Jak ustawić adapter odpoczynku w ember cli generowany model

//app.js 
    import Ember from 'ember'; 
    import Resolver from 'ember/resolver'; 
    import loadInitializers from 'ember/load-initializers'; 

    Ember.MODEL_FACTORY_INJECTIONS = true; 

    var App = Ember.Application.extend({ 
     modulePrefix: 'friend-ember-app', // TODO: loaded via config 
     Resolver: Resolver 
    }); 
    App.ApplicationAdapter = DS.RESTAdapter.extend({ 
     host: 'localhost:3000', 
     namespace: 'api/v1' 
    }); 

    loadInitializers(App, 'friend-ember-app'); 

    export default App; 

//

//models/event.js 
    import DS from 'ember-data'; 

    export default DS.Model.extend({ 
     title: DS.attr('string'), 
     description: DS.attr('string') 
    }); 

//

// controllers/index.js 
    import Ember from 'ember'; 

    export default Ember.Controller.extend({ 
     columns: function(){ 
      //Attempting to see request to remote api 
      var events = this.store.all('event'); 
      debugger; 
      return [1,2,3,4]; 
     }.property() 
    }); 

Odpowiedz

21

Adapter musi być zdefiniowane i eksportowane w oddzielnym pliku w folderze adapterów

W adaptery/application.js

import DS from "ember-data"; 

var ApplicationAdapter = DS.RESTAdapter.extend({ 
    host: 'localhost:3000', 
    namespace: 'api/v1' 
}); 

export default ApplicationAdapter; 
+0

Dzięki ViRa, która to naprawiła. Pytanie uzupełniające: Dlaczego nie można ustawić obiektu RESTAdapter przy użyciu App.ApplicationAdapter w pliku app.js? Może to mój brak zrozumienia przestrzeni nazw Ember. Wszelkie informacje są mile widziane. – MikeV

+2

Z tego co rozumiem, każdy plik javascript jest zmapowany do modułu javascript es6 i tylko wyeksportowane funkcje i obiekty są dostępne dla innych modułów. W twoim przypadku applicationadapter nie został wyeksportowany. Po drugie, nazwa pliku i folderów ma pewne znaczenie w ember, którego nie otrzymuję całkowicie. Wszystkie kody związane z adapterami znajdują się w folderze kart. Podobnie jak kontrolery, modele itp. Mają swój własny folder. (Przepraszam, jeśli nie jestem zbyt pomocny.) Jestem całkiem nowy, aby również ember.) – ViRa

+1

Mam podobny problem, próbując rozszerzyć adapter aplikacji, jak wyjaśniono [tutaj] (http://andycrum.com/2014/06/ 02/get-start-with-ember-data /) w wersji * Na marginesie: określanie innego hosta i przestrzeni nazw *. Nie mogę zrozumieć, jak mogę odwołać się do 'ApplicationAdapter' w ember-cli. – masciugo