gpt4 book ai didi

ember.js - 在 ember-cli 中动态生成 ember-data 模型

转载 作者:行者123 更新时间:2023-12-02 22:11:34 30 4
gpt4 key购买 nike

我有一个 ember-cli 应用程序,我需要根据远程位置的配置数据动态生成一些 ember 数据模型。我有一个初始化程序,它推迟应用程序准备就绪,并通过 ajax 获取配置数据。

现在在老式的 ember 应用程序中,从那时起,我只需生成我的 DS.Model 对象并将它们分配给全局 App ember 应用程序实例。但是,在 ember-cli 中,我不确定如何定义模型,以便应用程序的其余部分可以找到它们,因为默认情况下 ember-cli 的解析器会根据文件名/目录结构生成模型及其名称。

最佳答案

事实证明,这比我想象的要简单一些。基本上只需要在我的初始化程序中为动态生成的每个模型使用 Ember.Application.register ,如下所示:

import Ember from "ember";
import request from "ic-ajax";
import DS from "ember-data";

export default {
name: 'model-config',
initialize: function(container, application) {
application.deferReadiness();

request('/path/to/model/config/data').then(function(response) {
Ember.$.each(response.tables, function(modelName, modelCfg) {
var cfg = {};

Ember.$.each(modelCfg, function(fieldName, fieldCfg) {
if(typeof fieldCfg === 'string') {
cfg[fieldName] = DS.attr(fieldCfg);
} else {
cfg[fieldName] = DS[fieldCfg.type](fieldCfg.model);
}
});

application.register('model:' + modelName, DS.Model.extend(cfg));
});

application.advanceReadiness();
});
}
};

关于ember.js - 在 ember-cli 中动态生成 ember-data 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694038/

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