sách gpt4 ai đã đi

ember.js - 没有 Ember 数据的 Ember-CLI,使用普通的 ember 对象代替

In lại 作者:行者123 更新时间:2023-12-04 17:18:32 28 4
mua khóa gpt4 Nike

我使用 Ember-CLI 来构建我的 ember 应用程序,但我不想使用 Ember Data。

默认情况下,当你输入这个命令:ember generate model Person 时,ember-cli 会在名为“person.js”的模型下创建一个 js 文件,它会是一个 DS.extend(...)。我不想要那个,我想要一个普通的 ember 对象。所以...我删除了 person.js 并手动创建了一个名为 models.js 的 js 文件(这就是我要声明所有 ember 对象的地方)。

这是我在 models.js 中的内容:

import Ember from "ember";

App.Person = Ember.Object.extend({
helloWorld: function() {
alert("Hi, my name is " + this.get('name'));
}
});

我已经检查过“App”是否可用(在 app.js 中声明了一个名为 App 的变量——由 EmberCLI 生成——并被导出)。

所以......现在......我想从我的 route 使用它。我有这样的东西(在“路由”下名为 person.js 的 js 文件中):
import Ember from 'ember';

export default Ember.Route.extend({
model: function() {
return App.Person.create({
name: "Tom Dale"
});
}
});

嗯......它不起作用。控制台说:处理路由时出错:person.index 应用程序未定义 ReferenceError:应用程序未定义。

好的...我检查了生成的js文件(myproject.js):我发现了这个:
define('infoleccion2015/tests/models/models.jshint', function () {

'use strict';

module('JSHint - models');
test('models/models.js should pass jshint', function() {
ok(false, 'models/models.js should pass jshint.\nmodels/models.js: line 3, col 1, \'App\' is not defined.\n\n1 error');
});

});

事实证明,“应用程序”在任何地方都无法识别(甚至从 models.js 中也无法识别)。

我是 EmberCLI 的新手。有人能告诉我在这里做什么吗?严格要求我们不能使用 Ember-Data。

Cảm ơn!

添加:

感谢 Daniel 和 Buck 的及时回复,我已经检查过它们并且有效。

不过,我仍然很固执,试图将所有对象定义放在一个 js 文件 (models.js) 中……现在我找到了方法。

首先,您可以创建一个 js 文件,我们将其命名为 models.js。你不必把它放在models/目录下;你可以直接把它放在app/下。

这是models.js的示例内容:

从“ember”导入 Ember;
var Estado = Ember.Object.extend({
describe: function() {
return "Hi, the estado is " + this.get("idEstado");
}.property("idEstado")
});

var Distrito = Ember.Object.extend({
describe: function() {
return "Hi, the distrito is " + this.get("idDistrito");
}.property("idDistrito")
});

var models = {
Estado: Estado,
Distrito: Distrito
};

export default models;

然后,在您的 Route javascript 中,您可以这样使用它:
import models from '../models';

export default Ember.Route.extend({
model: function() {
return models.Estado.findAll();
}
});

只是一种替代方法,以防您认为为您的项目的每个域模型使用单独的 js 文件。

Cảm ơn!

1 Câu trả lời

App.Person thing 是基于全局变量的 Ember 应用程序的遗物,它们不再适用于 Ember CLI 世界。 Ember CLI 使用目录结构在需要时查找应用程序的各个部分。

将您的模型更改为:

import Ember from 'ember';

export default Ember.Object.extend({
helloWorld: function() {
alert("Hi, my name is " + this.get('name'));
}
});

在路由文件中,导入并使用模型类:
import Ember from 'ember';
import Person from '../models/person';

export default Ember.Route.extend({
model: function() {
return Person.create({
name: "Tom Dale"
});
}
});

如果您不使用 Ember Data,则不妨将其删除。正如它所暗示的那样 in the documentation ,运行这个:
npm rm ember-data --save-dev

关于ember.js - 没有 Ember 数据的 Ember-CLI,使用普通的 ember 对象代替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28156225/

28 4 0
Bài viết được đề xuất: arrays - VBA如何在消息框中显示数组
Bài viết được đề xuất: prolog - Prolog 的逻辑更新 View 如何用于断言和收回?
Bài viết được đề xuất: r - 柯尔莫哥洛夫-斯米尔诺夫检验
Bài viết được đề xuất: haproxy - 如何使HA代理保持事件状态
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com