TL; DR - Ember Data无法在运行Ember.js的v1.9.0的基本Ember CLI应用程序中运行
我对Ember和Ember CLI有点/非常新,我刚刚创建了一个新项目来试用版本1.9.0的Ember.js这里是一个链接:http://emberjs.com/blog/2014/12/08/ember-1-9-0-released.html
我正处于我的应用程序的某个位置(不是很深,我会承认)我在哪里设置FIXTURES来测试一些数据,但后来发生了这种情况:
控制台
Error while processing route: dashboard.index Cannot read property 'find' of undefined TypeError: Cannot read property 'find' of undefined
at __exports__.default.Ember.Route.extend.model (focus-haven/routes/dashboard.js:9:24)
at EmberObject.extend.deserialize (http://0.0.0.0:4200/assets/vendor.js:38356:21)
at applyHook (http://0.0.0.0:4200/assets/vendor.js:61082:30)
at Object.HandlerInfo.runSharedModelHook (http://0.0.0.0:4200/assets/vendor.js:59103:22)
at Object.subclass.getModel (http://0.0.0.0:4200/assets/vendor.js:59329:21)
at http://0.0.0.0:4200/assets/vendor.js:60956:19
at tryCatch (http://0.0.0.0:4200/assets/vendor.js:61405:16)
at invokeCallback (http://0.0.0.0:4200/assets/vendor.js:61417:17)
at publish (http://0.0.0.0:4200/assets/vendor.js:61388:11)
at http://0.0.0.0:4200/assets/vendor.js:42960:9
在做了一些调查并运行 ember test 后,我得到了这个:
not ok 14 PhantomJS 1.9 - ApplicationAdapter: it exists
---
actual: >
null
message: >
Setup failed on it exists: Can't find variable: DS
Log: >
...
not ok 15 PhantomJS 1.9 - Dashboard: it exists
---
actual: >
null
message: >
Setup failed on it exists: Can't find variable: DS
Log: >
...
not ok 16 PhantomJS 1.9 - Task: it exists
---
actual: >
null
message: >
Setup failed on it exists: Can't find variable: DS
Log: >
...
......我在我的控制台中找到了这个:
DEBUG: -------------------------------
DEBUG: Ember : 1.9.0
DEBUG: Handlebars : 2.0.0
DEBUG: jQuery : 1.11.1
DEBUG: -------------------------------
我可能错了,但我认为Ember Data没有被加载或导入或其他任何东西,所以我花了大部分时间试图解决这个问题,但没有骰子。
我尝试过的事情:
解决方案可能很明显,但在广泛运行更多测试和搜索网络后,我甚至无法找到解决方案。所以,是的,我有点累了,希望一双新鲜的眼睛能看到吸烟枪。
适配器/ application.js中
import DS from 'ember-data';
export default DS.FixtureAdapter.extend({});
模型/ task.js
import DS from 'ember-data';
var Task = DS.Model.extend({
group: DS.attr('string'),
kind: DS.attr('string'),
body: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
Task.reopenClass({
FIXTURES: [
{
id: 1,
group: 'test',
kind: 'project',
body: 'whatever',
isCompleted: false
},
{
id: 2,
group: 'test',
kind: 'homwork',
body: 'lol what nope',
isCompleted: false
}
]
});
export default DS.Store.extend({
adapter: 'DS.FixtureAdapter'
});
export default Task;
路由/ dashboard.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('task');
}
});
dashboard.hbs
{{#each task in model}}
<p>{{task.group}}</p>
<p>{{task.kind}}</p>
<p>{{task.body}}</p>
<p>{{task.isCompleted}}</p>
{{/each}}
bower.json
{
"name": "focus-haven",
"dependencies": {
"handlebars": "2.0.0",
"jquery": "^1.11.1",
"ember": "1.9.0",
"ember-data": "~1.0.0-beta.12",
"ember-resolver": "~0.1.10",
"loader.js": "stefanpenner/loader.js#1.0.1",
"ember-cli-shims": "stefanpenner/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "rwjblue/ember-cli-test-loader#0.0.4",
"ember-load-initializers": "stefanpenner/ember-load-initializers#0.0.2",
"ember-qunit": "0.1.8",
"ember-qunit-notifications": "0.0.4",
"qunit": "~1.15.0"
},
"resolutions": {
"handlebars": "2.0.0",
"ember": ">=1.4 <2",
"ember-data": "~1.0.0-beta.7"
}
}
答案 0 :(得分:1)
我实际上能够查明问题的原因,但首先让我解决一下如何使用 Ember CLI 运行 Ember v1.9.0 。
这是我更新运行 Ember CLI v0.1.4 的项目以使用 Ember.js v1.9.0 的方式 (我想要某种确认,以确保这是更新Ember CLI应用程序的有效方法,以免误导其他正在阅读此问题的人)
npm uninstall --save-dev broccoli-ember-hbs-template-compiler
npm install --save-dev ember-cli-htmlbars
rm -rf bower_components
bower install --save handlebars#2.0.0
bower install --save ember
就我而言,我的问题的真正罪魁祸首是Ember Addon,名为 ember-cli-bootstrap-sass 。每当我安装它时,都会出现问题,当我npn uninstall
编辑它并将其从 package.json &#34; devDependencies&#34;中删除时,这个问题消失了。
我不知道为什么会出现这种情况的具体细节,但我认为这可能与此插件与 Handlebars v1.x <的相关性之间的关系有关。 / em>(?)和Ember对新 HTMLbars编译器/ Handlebars v2.0.0 (?)的依赖。我在这里完全错了。
但是现在我不会使用这个插件,我会调查其他Ember Addons是否会重复相同的问题。
PS:我没有测试或调查过这个问题是否出现在Ember.js v1.8.1
我仍然是一个新手网络开发者,所以任何与此类问题相关的输入或点都会很棒! :d