我的DS.Model解析日期格式为"YYYY-MM-DD"时遇到问题.他们总是落后一天.
这是一个例子:
在控制台上使用Date对象我得到了类似的结果
> new Date('2012-09-20')
Wed Sep 19 2012 17:00:00 GMT-0700 (PDT)
Run Code Online (Sandbox Code Playgroud)
这是一个漏洞bug还是一个javascript bug或Chrome bug,还是我错过了什么?
OSX 10.7上的Chrome版本21.0.1180.89
我有一个顶级会话对象,下面可以有很多发言者.
我的REST ish端点允许我像这样获得所有会话
/会话/
我可以像这样得到给定会话的所有发言者
/会话/ 1 /扬声器/
使用当前版本的ember-data,我可以看到它正在尝试使用此url查找所有扬声器
/扬声器/
使用下面的数据模型
CodeCamp.Session = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
speakers: DS.hasMany('CodeCamp.Speaker',{nested: true})
});
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session',{nested: true})
});
Run Code Online (Sandbox Code Playgroud)
我添加了"嵌套:true"部分,因为我想要构建所需的ember-data
/会话/%@ /扬声器/
但这没有发生 -
我知道我可以手动定义一个URL
CodeCamp.Speaker.reopenClass({
url: 'sessions/%@/speakers/'
});
Run Code Online (Sandbox Code Playgroud)
但是这样做我需要在基础REST适配器中滚动我自己的"buildURL"方法,以便它查找这样的格式并在必要时添加父ID(如果可能的话我宁愿不这样做)
ember-data是否支持这样的开箱即用或者我自己会被迫编写大量代码?
我有一个返回JSON的API,它没有为Ember的消费格式正确.而不是这(烬预期):
{ events: [
{ id: 1, title: "Event 1", description: "Learn Ember" },
{ id: 2, title: "Event 2", description: "Learn Ember 2" }
]}
Run Code Online (Sandbox Code Playgroud)
我明白了:
{ events: [
{ event: { id: 1, "Event 1", description: "Learn Ember" }},
{ event: { id: 2, "Event 2", description: "Learn Ember 2" }}
]}
Run Code Online (Sandbox Code Playgroud)
因此,如果我理解正确,我需要创建一个自定义Serializer来修改JSON.
var store = DS.Store.create({
adapter: DS.RESTAdapter.create({
serializer: DS.Serializer.create({
// which hook should I override??
})
})
});
Run Code Online (Sandbox Code Playgroud)
我已经阅读了与DS.Serializer相关的代码注释,但我无法理解如何实现我想要的...
我该怎么做?
ps:我的目标是App.Event.find()开展工作.目前,我明白了Uncaught Error: assertion …
我正在体验Ember.js,并设置了一个小应用程序,用户可以登录和注销.当用户注销时,我想清除数据存储中的所有当前缓存的记录.有没有办法做到这一点,还是我必须强制浏览器重新加载页面?
我正在研究Java(可能是Scala)的项目,它将使用Ember和ember-data.我知道我可以编写一个后端来格式化JSON,但我想知道是否有任何Java Java包能够以更有效地利用DS.RESTAdapter的格式构建JSON字符串而不构建完全自定义的东西?
类似于Rails Active Model Serializers的东西是理想的,或者是Ember的JSON序列化器和替代REST适配器.
在我需要从头开始构建东西之前,先问问你们.谢谢!
App.User.find()现在是this.store.find(),那么如何从控制台到达那里?
我正在使用EmberJS 1.0.0与Ember Data 1.0.0 beta和最新版本的LocalStorage Adapter.当我尝试从商店加载具有hasMany关系的记录时,我得到以下错误:
ember-1.0.0.js(第394行)
断言失败:您在"App.List:ember236:1"上查找了"项目"关系,但未加载某些相关记录.确保它们都与父记录一起加载,或者指定关系是异步的(DS.attr({async:true}))
和ember-data.js(第2530行)
TypeError:解析器未定义}).then(resolver.resolve,resolver.reject);
快速演示应用程序:http://jsbin.com/oKuPev/49(观看控制台)
<script type="text/x-handlebars">
List: {{name}}
<div>
{{#each items}}
{{id}} - {{name}}<br/>
{{/each}}
</div>
</script>
<script type="text/javascript">
window.App = Ember.Application.create({});
App.ApplicationAdapter = DS.LSAdapter.extend({});
var FIXTURES = {
'App.List': {
records: {
'1': { id: '1', name: 'The List', items: ['1','2'] }
}
},
'App.Item': {
records: {
'1': { id: '1', name: 'item 1', list: '1' },
'2': { id: '2', name: 'item 2', list: …Run Code Online (Sandbox Code Playgroud) 我正在尝试从2个类别(新闻和事件)获得两个2个博客帖子列表,然后在我的主页的2个不同列中显示它们.我需要执行2个单独的Ajax调用来获取这些博客帖子.我不使用ember-data进行此操作,因为我没有看到在这种情况下使用它的优势(但我可能错了).
export default Ember.Route.extend({
setupController(controller, model) {
var wpUrl = 'http://public-api.wordpress.com/rest/v1/sites/company.wordpress.com/posts/?number=2&category=';
Ember.$.ajax({ url: wpUrl + 'news', dataType: "jsonp", type: 'GET' }).then(function (data) {
controller.set('news', data.posts);
});
Ember.$.ajax({ url: wpUrl + 'events', dataType: "jsonp", type: 'GET' }).then(function (data) {
controller.set('events', data.posts);
});
}
});
Run Code Online (Sandbox Code Playgroud)
上面的代码有效.但是从我在Ember纪录片中看到的内容来看,我应该将这些数据放在model钩子中(而不是setupController)以利用承诺.所以我尝试用这种方式重新编写代码:
export default Ember.Route.extend({
model() {
var wpUrl = 'http://public-api.wordpress.com/rest/v1/sites/company.wordpress.com/posts/?number=2&category=';
return {
news: function () {
return Ember.$.ajax({ url: wpUrl + 'news', dataType: "jsonp", type: 'GET' }).then(function (data) {
return data.posts;
})
}, …Run Code Online (Sandbox Code Playgroud) 我正在实现一个由Ember-Data REST Adapter使用的JSON API.
Ember-Data REST Adapter需要返回的JSON遵循以下格式:http:
//jsonapi.org/format/
Ember-Data文档:http:
//emberjs.com/guides/models/the-rest-adapter/#toc_json-conventions
我知道如何使用Spring MVC 3.2/Jackson返回JSON,这不是问题.但是,JSON格式必须遵循jsonapi.org中指定的格式.
你可以找到一个示例Django实现,如果你google"ember data tastypie adapter"(对不起,没有足够的链接信誉点[sic]),rable似乎也有一个.
似乎jsonapi.org是几个框架/语言的参考标准.
我真的需要自己用Java实现这个标准吗?
任何帮助/指针将不胜感激.
非常感谢!
我在一个DS.Model扩展类中,想要获取当前的适配器实例.我在这里找到了一些代码:
App.__container__.lookup('adapter:application')
Run Code Online (Sandbox Code Playgroud)
但它看起来很hacky,我想知道是否有更正确的方法.