【问题标题】:How to set rest adapter in ember cli generated model如何在 ember cli 生成的模型中设置休息适配器
【发布时间】:2014-09-12 17:11:01
【问题描述】:

我正在尝试让我的 ember 模型使用远程 rails api。我试过扩展 DS.RESTAdapter 但我不知道如何告诉模型使用这些设置。我的模型从不访问 localhost:3000。

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

【问题讨论】:

    标签: ember.js ember-data ember-cli


    【解决方案1】:

    适配器需要在适配器文件夹中的单独文件中定义和导出

    在适配器/application.js 中

    import DS from "ember-data";
    
    var ApplicationAdapter = DS.RESTAdapter.extend({
        host: 'localhost:3000',
        namespace: 'api/v1'
    });
    
    export default ApplicationAdapter;
    

    【讨论】:

    • 感谢 ViRa 修复了它。后续问题:为什么我无法在我的 app.js 中通过 App.ApplicationAdapter 设置 RESTAdapter?也许是我对 ember 的命名空间缺乏了解。任何信息将不胜感激。
    • 据我了解,每个 javascript 文件都映射到 es6 javascript 模块,其他模块只能访问导出的函数和对象。在您的情况下,应用程序适配器未导出。第二,文件和文件夹的命名在 ember 中有一些我不完全理解的含义。所有与适配器相关的代码都位于适配器文件夹中。类似于控制器、模型等有自己的文件夹。 (对不起,如果我没有太多帮助。我对 ember 也很陌生。)
    • 我在尝试扩展应用程序适配器时遇到了类似的问题,正如 pragraph 中的 here 所解释的那样,旁白:指定不同的主机和命​​名空间。我不明白如何在 ember-cli 中引用 ApplicationAdapter。
    • @masciugo 你搞清楚了吗?
    • import ApplicationAdapter from './application'; export default ApplicationAdapter.extend({ });
    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2014-06-10
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多