- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经提交了 github issue与 Ember Data 团队合作,但我很想深入了解如何解决这个问题(或者如果我一直都错了)
如果这个错误 on jsfiddle,您可以看到一个工作演示
问题的 jsfiddle:http://jsfiddle.net/cdownie/JxhBv/1/为了更清楚的解释,这里复制了代码。
我有以下数据模型,我想用固定装置进行测试:
App.Parent = DS.Model.extend({
name: DS.attr('name'),
kids: DS.hasMany('kids', {async : true})
});
App.Kid = DS.Model.extend({
name: DS.attr('name'),
grade: DS.attr('string')
});
我正在使用以下装置对其进行测试:
App.Parent.FIXTURES = [
{id: 'doe', name: 'john', links: {kids: '/fake/url/for/kids'}}
];
App.Kid.FIXTURES = [
{id: 'doe-jr', name: 'john jr', grade: '4th'}
];
现在,默认情况下 DS.FixtureAdapter 不支持这种关系,所以我不得不编写自己的扩展来填充 findHasMany
方法。在此实现中,我使用父 ID 作为所有子项的前缀。
App.CustomFixtureAdapter = DS.FixtureAdapter.extend({
defaultSerializer: '_umrest',
findHasMany: function(store, record, link, relationship) {
var type = relationship.type;
var parentId = record.get('id');
return store.findAll(relationship.type).then(function(children) {
var content = children.get('content');
var filteredContent = content.filter(function(child) {
return (child.get('id').indexOf(parentId) == 0);
});
// The children we return here are fully resolved with data.
var kid = filteredContent[0];
console.log('The findHasMany method is returning a kid with id :', kid.get('id'), ' name: ', kid.get('name'), ' grade:', kid.get('grade'));
return Ember.RSVP.resolve(filteredContent);
});
},
queryFixtures: function(fixtures, query, type) {
return fixtures;
}
});
在 findHasMany
中,我的 App.Kid
实体已完全解析。它的所有数据都在那里。但是,在任何请求 parent 的 child 的其他代码中,App.Kid
模型有一个 ID 但没有其他数据。在我的演示中,这是在索引路由中演示的:
App.IndexRoute = Ember.Route.extend({
model: function() {
// Return the first kid of the first parent (in our data: the only kid)
return this.store.findAll('parent').then(function(parentRecords) {
var parent = parentRecords.get('content')[0];
return parent.get('kids').then(function(kids) {
return kids.get('content')[0];
});
});
},
setupController: function(controller, model) {
var id = model.get('id'),
name = model.get('name'),
grade = model.get('grade');
console.log('The model in setupController is returning a kid with id:', id, ' name: ', name, ' grade:', grade);
console.log('Is that model fully loaded?', model.get('isLoaded') ? 'yes': 'no');
controller.set('id', id);
controller.set('name', name);
controller.set('grade', grade);
}
});
由于我们从自定义夹具适配器中的 store.findAll(U.Kid)
调用中获得了完全解析的 App.Kid
模型,我希望当我通过 hasMany 关系获得该模型时,完全解析的模型将出现。
在 js fiddle 中:
DEBUG: Ember : 1.6.1
DEBUG: Ember Data : 1.0.0-beta.8.2a68c63a
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 1.8.3
在另一个环境中也是如此:
DEBUG: Ember : 1.5.1
DEBUG: Ember Data : 1.0.0-beta.8.2a68c63a
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 1.9.1
最佳答案
我想通了。问题出在我对 findHasMany
的实现中。系统需要一组原始数据对象,例如:
[{id: 'doe-jr', name: 'john jr', grade: '4th'}]
当我实际返回的是一组 App.Kid
模型时。
修改方法如下:
findHasMany: function(store, record, link, relationship) {
var type = relationship.type;
var parentId = record.get('id');
return store.findAll(relationship.type).then(function(children) {
var content = children.get('content');
var filteredContent = content.filter(function(child) {
return (child.get('id').indexOf(parentId) == 0);
});
// Fixed the issue by pulling out the raw data from the fixture model
// and returning that.
var data = filteredContent.map(function(content) {
return content.get('data');
});
return Ember.RSVP.resolve(data);
// Switch that return statement to the following to show original bug:
// return Ember.RSVP.resolve(filteredContent);
});
},
关于javascript - DS.FixtureAdapter 丢失具有 hasMany 异步属性的夹具数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25043438/
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!