似乎store在我的Ember测试中无法使用,无论是ObjectController在任何单元测试中还是在任何单元测试中.我的单元测试:
`import {test, moduleFor} from "ember-qunit"`
`import DS from "ember-data"`
moduleFor "controller:register", "RegisterController", {
}
test "store is working", ->
expect 1
controller = @subject()
Ember.run(->
sampleUser = controller.get("store").createRecord("user", {
username: "myuser"
password: "otherpassword"
})
ok(sampleUser instanceof DS.Model)
)
Run Code Online (Sandbox Code Playgroud)
测试将给出:
死于试验#1试验(
http://localhost:4200/assets/vendor.js:73539:13)在EVAL(应用程序/测试/单元/控制器/注册-test.js:19:5)在requireModule(http://localhost:4200/assets/vendor.js:54:29)在http://localhost:4200/assets/test-loader.js:14:29:无法读取属性'createRecord'空的
任何人都可以解释为什么我无法DS从我的测试中或控制器本身(运行测试时)访问功能?
I did my first development in a Win7 machine, then switched to a Mac when I got that, which was great due to the speed of building with ember server running. I've been keeping everything in a Git repo. Everything works fine running ember server from my Mac.
Now, when I do a fresh clone from the repo on my Win7 computer, then do npm install and bower install (both of which complete fine), when I run ember server next, …
我使用Ember-CLI构建我的ember应用程序,但我不想使用Ember Data.
默认情况下,当您键入以下命令时:ember generate model Person,ember-cli将在名为"person.js"的模型下创建一个js文件,它将是一个DS.extend(...).我不想那样,我想要一个普通的余烬物.所以......我删除了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'));
}
});
Run Code Online (Sandbox Code Playgroud)
我已经检查过"App"是否可用(在app.js中声明了一个名为App的应用程序 - 由EmberCLI生成 - 并且它被导出).
所以......现在......我想从我的路线中使用它.我有这样的东西(在"routes"下的一个名为person.js的js文件中):
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return App.Person.create({
name: "Tom Dale"
});
}
});
Run Code Online (Sandbox Code Playgroud)
嗯......它不起作用.控制台说:处理路由时出错: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 …Run Code Online (Sandbox Code Playgroud) 我已经安装了ember-marked插件.它通过content-for钩子向我的应用程序添加内容.特别是在标题中,但我认为不重要.
我不想要它注入的脚本或CSS.
如何覆盖content-for插件?
我不知道出了什么问题但是当我在项目中更改一个触发重建的文件时,我得到一个EEXIST, file already exists错误,引用了一个tmp文件位置.
为了说明,请参阅以下内容:
1)我按照Ember发行说明的指示从一块干净的石板开始:
? code npm uninstall -g ember-cli
unbuild ember-cli@0.2.0-beta.1
? code npm cache clean
? code bower cache clean
bower deleted Cached package ember: /Users/userx/.cache/bower/packages/6c52274ebac940c836cec79e11a2d66a/1.10.0
bower deleted Cached package ember-cli-test-loader: /Users/userx/.cache/bower/packages/fe70ed35683979c3b9a86502abc892c8/0.1.3
bower deleted Cached package ember-load-initializers: /Users/userx/.cache/bower/packages/ace05fe526bc815d00157b3e7fdcccab/0.0.2
bower deleted Cached package ember-qunit: /Users/userx/.cache/bower/packages/6b2637f1e3c33e331968889fd7088678/0.2.8
bower deleted Cached package ember-qunit-notifications: /Users/userx/.cache/bower/packages/ebaf09c3e2e50cee4fa08625051f7d60/0.0.7
bower deleted Cached package ember-data: /Users/userx/.cache/bower/packages/b56c7ee7b1cb5f358555b733f3ec15c1/1.0.0-beta.15
bower deleted Cached package ember-cli-shims: /Users/userx/.cache/bower/packages/b2aa621bf259c52274bc62a524406e11/0.0.3
bower deleted Cached package loader.js: /Users/userx/.cache/bower/packages/b765bce6e48383520b38bc3732776d8e/1.0.1
bower deleted Cached package …Run Code Online (Sandbox Code Playgroud) 我似乎无法从控制器内部获取模型,即使控制器似乎设置了模型属性。下列:
export default Ember.ObjectController.extend({
init: function() {
this._super();
console.log(this.get('model'));
console.log(this.model);
console.log(this);
}
}
Run Code Online (Sandbox Code Playgroud)
打印出来:

有任何想法吗?
我从控制台得到一个非常不透明的错误消息(在我意义上我没有参考点的不透明),我不完全确定在哪里看,我觉得它可能是库代码中的错误但在发布之前这个在github上我只是仔细检查一下这不是我自己的错.
问题很简单,我打电话this.store.find('player'),希望获得所有玩家的列表,然后以某种列表显示它们,但我甚至没有超过装载部分.数据从服务器中提取并且看起来格式正确,但在route.model方法调用之后似乎失败了.并且错误消息似乎在ember.js库代码中的某处,没有任何指向我自己的代码.
内容类型当然是application/json,并注意该id属性实际上_id.
[
{
"_id":"55405a5102b4ed623c225e87",
"alias":"mikeTest",
"__v":0,
"scans":[],
"createdAt":"2015-04-29T04:13:05.223Z"
}
]
Run Code Online (Sandbox Code Playgroud)
请注意,堆栈跟踪的一部分指向我的源,仅指向Ember源.这让调试很痛苦.
Error while processing route: leader Cannot read property 'match' of undefined TypeError: Cannot read property 'match' of undefined
at Ember.DefaultResolver.extend.podBasedComponentsInSubdir (http://localhost:4200/assets/vendor.js:60138:76)
at http://localhost:4200/assets/vendor.js:60190:34
at Array.exports.default.mixin.Mixin.create.find (http://localhost:4200/assets/vendor.js:39572:30)
at Ember.DefaultResolver.extend.findModuleName (http://localhost:4200/assets/vendor.js:60188:44)
at resolveOther (http://localhost:4200/assets/vendor.js:60051:37)
at superWrapper (http://localhost:4200/assets/vendor.js:28141:20)
at exports.default.EmberObject.default.extend.resolve (http://localhost:4200/assets/vendor.js:15454:35)
at Object.resolve [as resolver] (http://localhost:4200/assets/vendor.js:15217:23)
at resolve (http://localhost:4200/assets/vendor.js:12792:29)
at Object.Registry.resolve (http://localhost:4200/assets/vendor.js:12336:21)
Run Code Online (Sandbox Code Playgroud)
我已经设置了我的Ember应用程序来使用pod结构.我创建了一个topbar-nav组件,我在主页面上显示.在topbar-nav组件中,我设置了页面标题,我希望每个路由自动设置,因此对于仪表板路径,标题应该是仪表板,仪表板/类别标题应该是类别等等.
这是我的app结构:
应用程序路由器 - router.js
import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('dashboard', function() {
this.route('categories');
});
});
export default Router;
Run Code Online (Sandbox Code Playgroud)
和模板:
应用程序/ template.hbs
<aside>
{{sidebar-nav}}
</aside>
<main>
<header>
{{topbar-nav}}
</header>
{{outlet}}
</main>
Run Code Online (Sandbox Code Playgroud)
组件/顶栏-NAV/template.hbs
<nav class="topbar-nav">
<div class="text-center">
<h5 class="page-title">{{title}}</h5>
</div>
</nav>
{{yield}}
Run Code Online (Sandbox Code Playgroud)
组件/顶栏-NAV/component.js
import Ember from 'ember';
export default Ember.Component.extend({
title: 'Component title'
});
Run Code Online (Sandbox Code Playgroud)
你可以告诉我已经呈现的标题是' 组件标题 '
我现在得到的最准确的答案是这一个:
在生产ember构建中,我在加载index.html时遇到了以下错误.
未捕获错误:无法找到ember-data/-private\system\references\record从中导入的模块ember-data/-private/system/references
我相信模块名称正斜杠会导致此问题.
我在ember-cli-build.js文件中没有任何条目.在分析此错误时,我发现注册表包含以下模块,
"ember-data/-private/system/references"
"ember-data/-private/system/references/belongs-to"
"ember-data/-private/system /文献/有一对多"
但是有些如何在注册表中检查以下依赖项ember-data-private\system\references\
tneter-data-private\system\references\belongs-to
ember-data-private\system\references\has-many
导致以下缺少模块错误.任何人都帮我解决这个错误.
更新:
有人可以帮忙吗?本周好一半,我一直在追求这个没有好运的事情.我注意到客户端正在生成两个POST.我已经为适配器添加了代码.还有其他我应该看的吗?
我正在浏览下面提供的视频教程,当我单击"提交"按钮将数据保存到数据库时,无法解决两个错误.
我看到数据库有两个新记录.当我再次单击提交按钮时,应用程序会将我带回到todo-items页面,其中显示了两个记录.谁能告诉我我做错了什么?
当前版本:
视频教程(错误发生在11:30标记处):https://www.youtube.com/watch?v = bZ1D_aYGJnU.注意:该视频的作者似乎已经将重复的POST问题在视频结尾处消失了,但我看不出如何.
组件/表格/ TODO项表格/ component.js
import Component from '@ember/component';
export default Component.extend({
actions:{
save(){
this.get('submit')();
}
}
});
Run Code Online (Sandbox Code Playgroud)
组件/表格/ TODO项表格/ template.hbs
<form {{action "save" on="submit"}}>
{{input placeholder="description" value=todoItem.description}}
<br />
{{#if todoItem.validations.isValid}}
<button type="submit">Add</button>
{{else}}
<button type="submit" disabled>Add</button>
{{/if}}
</form>
Run Code Online (Sandbox Code Playgroud)
模板/ S/TODO项/ add.hbs
{{forms/todo-item-form
todoItem=model
submit=(route-action "submitAction")
}}
{{outlet}}
Run Code Online (Sandbox Code Playgroud)
型号/待办事项,item.js
import DS from 'ember-data';
import { validator, buildValidations } from 'ember-cp-validations'; …Run Code Online (Sandbox Code Playgroud) ember-cli ×10
ember.js ×9
ember-data ×3
broccolijs ×1
coffeescript ×1
console ×1
javascript ×1
node.js ×1
unit-testing ×1
windows-7 ×1