如何在 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 的计算属性
如何在 Django 休息框架 ViewSet 中设置方法不需要身份验证