如何在 ember cli 生成的模型中设置休息适配器

Posted

技术标签:

【中文标题】如何在 ember cli 生成的模型中设置休息适配器【英文标题】:How to set rest adapter in ember cli generated model 【发布时间】: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()
    );

【问题讨论】:

【参考方案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( );

以上是关于如何在 ember cli 生成的模型中设置休息适配器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Immutablejs 和 Redux 以及 Flux 和 React 中设置类似 Ember 的计算属性

ember-cli 元配置/环境文件

如何在 Django 休息框架 ViewSet 中设置方法不需要身份验证

Ember-cli 按名称过滤模型,带有 html 选择选项

如何使用 Ember CLI 正确生成资源和路由

Ember.js - 将 ember-cli-mirage 用于假模型时未找到模型