2014-07-22 14 views
13

Ich versuche, mein ember Modell zu erhalten, um eine entfernte Schiene api zu verwenden. Ich habe versucht, DS.RESTAdapter zu erweitern, aber ich weiß nicht, wie ich dem Modell mitteilen soll, diese Einstellungen zu verwenden. Mein Modell erreicht niemals localhost: 3000.Wie man den Restadapter in ember cli einstellt, generierte Modell

//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() 
    }); 

Antwort

21

Der Adapter definiert werden muss, und in einer separaten Datei in Adapter Ordner

In Adapter/application.js exportiert

import DS from "ember-data"; 

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

export default ApplicationAdapter; 
+0

Dank ViRa, die es behoben. Folgefrage: Warum konnte ich den RESTAdapter nicht über App.ApplicationAdapter in meiner app.js einstellen? Vielleicht ist es mein Mangel an Verständnis für die Namespaces von Glut. Irgendwelche Informationen würden geschätzt werden. – MikeV

+2

Von was ich verstehe, ist jede Javascript-Datei auf ein es6 Javascript-Modul zugeordnet und nur die exportierten Funktionen und Objekte sind für andere Module zugänglich. In Ihrem Fall wurde der Anwendungsadapter nicht exportiert. Nummer zwei, die Benennung der Datei und die Ordner haben eine gewisse Bedeutung in ember, die ich nicht vollständig verstehe. Alle mit dem Adapter verbundenen Codes befinden sich im Adapterordner. Ähnlich wie Controller, Modelle usw. einen eigenen Ordner haben. (Sorry, wenn ich nicht viel Hilfe bin. Ich bin auch ziemlich neu zu ember.) – ViRa

+1

Ich habe ein ähnliches Problem versucht, den Anwendungsadapter zu erweitern, wie [hier] erklärt (http://andycrum.com/2014/06/ 02/getting-started-with-ember-data /) bei pragraph * Ein Nebensatz: Angabe eines anderen Hosts und Namespace *. Ich kann nicht verstehen, wie ich in "ember-cli" auf "ApplicationAdapter" verweisen kann. – masciugo