我使用Ember-CLI构建我的烬应用程序,但我不想使用Ember数据。默认情况下,当您输入以下命令时:ember generate model Person,ember-cli会在名为“person.js”的模型下创建一个js文件,并且它将成为DS.extend(...)。我不希望这样,我想要一个普通的烬对象。所以...我删除了person.js并手动创建了一个名为models.js的js文件(这就是我要声明所有我的ember对象的地方)。没有Ember数据的Ember-CLI,使用普通的烬对象代替
下面是我在models.js:
import Ember from "ember";
App.Person = Ember.Object.extend({
helloWorld: function() {
alert("Hi, my name is " + this.get('name'));
}
});
我已经检查了“应用程序”是可用的(有一个名为应用程序在app.js宣布变种 - 由EmberCLI产生的 - 这是出口)。
所以......现在...我想从我的路线中使用它。我有类似的东西(在“路线”下名为person.js的js文件中):
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return App.Person.create({
name: "Tom Dale"
});
}
});
呃......它不起作用。控制台说:处理路由时出错:person.index App未定义ReferenceError:App未定义。
好吧...我检查生成的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。
谢谢!
增加:
感谢丹尼尔和巴克的及时答复,我检查了他们和它的作品。
虽然我仍然固执,试图把所有的对象定义放在一个单独的js文件(models.js)中...我现在发现了它。
首先,您可以创建一个js文件,我们将其命名为models.js。你不必把它放在models /目录下;你可以直接把它放在app /下。
这里的models.js的样本内容:
进口灰烬从 “烬”;
然后,在你的路线JavaScript中,可以使用这种方式:
import models from '../models';
export default Ember.Route.extend({
model: function() {
return models.Estado.findAll();
}
});
只是一个选择,如果你认为有针对您的项目每个域模型矫枉过正单独的js文件。
谢谢!
如果你有一个新的问题,你应该开始一个新的问题!我甚至没有看到你更新了你的问题。 – 2015-01-26 23:15:12