gpt4 book ai didi

javascript - 在每个 Ember 环境中保留具有多个适配器的固定装置

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:25 24 4
gpt4 key购买 nike

尽管自然进展会 replace the fixture adapter with another adapter ,我想为开发环境保留固定装置,同时利用不同的 Ember 数据适配器进行生产。

这是由于:

  • 渐进增强的重迭代
  • 旨在从 iOS 应用嵌入到 UIWebView 中运行,生产配置与桥接调用本地程序集以获取数据紧密结合。

Ember CLI Assets 编译基于broccoli加载 Web 或 native API:

app.import({
development: 'vendor/company/WebAPI.js',
production: 'vendor/company/NativeAPI.js'
});

但是,我不确定如何利用这种模式来更改适配器。

开发环境

对于开发,我想使用模拟数据或 http 服务在浏览器中启用测试。

因此,在开发环境中启动 Ember 服务器会利用 fixtures。

ember server --environment=development

此配置将扩展 FixtureAdapter开发:

var ApplicationAdapter = DS.FixtureAdapter.extend({
/* ... */
});
export default ApplicationAdapter;

生产环境

然而,复杂性在于需要不同适配器的生产环境。

在生产环境中启动 Ember 服务器时,通过 bridge://方案提供服务,其中 native iOS 应用程序管理传输层和数据模型。

ember server --environment=production

此配置将扩展基础 Adapter用于生产:

var ApplicationAdapter = DS.Adapter.extend({
/* ... */
});
export default ApplicationAdapter;

如何在 Ember 应用程序中使用多个适配器?应用程序中的适配器是如何交换的,或者路由中的​​商店可能会定义不同的适配器?

最佳答案

您可以提供一个全局应用程序适配器,它将了解您的环境并根据当前环境导出最适合的适配器(如果需要,对您的序列化程序也是如此):

+-- app
| |-- adapters
| | `-- application.js
| | `-- custom-adapter.js
| |-- ...
| |
| |-- serializers
| `-- application.js
| `-- custom-serializer.js

应用程序.js:

import DS from 'ember-data';
import config from '../config/environment';
import CustomAdapter from './custom-adapter';

var adapter = DS.FixtureAdapter.extend({});

if (config.environment === 'production') {
adapter = CustomAdapter;
}

export default adapter;

custom-adapter.js:

import Ember from 'ember';
import DS from 'ember-data';

var adapter = DS.RESTAdapter.extend({
// your custom RESTAdapter
});

export default adapter;

希望对你有帮助

关于javascript - 在每个 Ember 环境中保留具有多个适配器的固定装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24902918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com