Ember.js 导航时重复的数据,而不使用余烬数据重新加载页面
我使用的是ember.js 1.0.0-pre4,ember数据版本11 我有以下型号:Ember.js 导航时重复的数据,而不使用余烬数据重新加载页面,ember.js,ember-data,Ember.js,Ember Data,我使用的是ember.js 1.0.0-pre4,ember数据版本11 我有以下型号: App.DbProcess = DS.Model.extend({ pid: DS.attr('number'), backendStart: DS.attr('string'), transactionStart: DS.attr('string'), queryStart: DS.attr('string'), stateChange: DS.attr('stri
App.DbProcess = DS.Model.extend({
pid: DS.attr('number'),
backendStart: DS.attr('string'),
transactionStart: DS.attr('string'),
queryStart: DS.attr('string'),
stateChange: DS.attr('string'),
waiting: DS.attr('boolean'),
state: DS.attr('string'),
query: DS.attr('string')
})
按以下路线:
App.HomeDbProcessesRoute = Ember.Route.extend({
model: function() {
return App.DbProcess.find();
}
})
然后我有了一个模板,它使用{{{{each controller}}{{/each}}
呈现所有检索到的进程。但是,如果我导航到其他页面(无需重新加载页面)并返回到流程页面,将再次检索流程,并在页面上呈现重复的流程
编辑:我也尝试过这个,但没有成功:
DS.RESTAdapter.map('App.DbProcess', {
primaryKey: 'pid'
})
事实证明,您可以这样做来全局自定义主键
App.Adapter = DS.RESTAdapter.extend({
url: document.location.protocol+'//url-api.com',
serializer: DS.RESTSerializer.extend({
primaryKey: function(type) {
// If the type is `BlogPost`, this will return
// `blog_post_id`.
var typeString = (''+type).split(".")[1].underscore();
return typeString + "_id";
}
})
})
我现在也遇到了同样的问题,下面是我的小补丁:
{{#if id}}
<div>
{{title}}
</div>
{{/if}}
{{{#if id}
{{title}}
{{/if}
在模板中,我仅在设置了id(只有来自数据库的id)时才从存储中呈现项。但你可能已经解决了
(使用修订版12)您的json看起来像什么?它是否包含一个
id
属性?我假设您没有在JSON中为主键返回唯一的id
s,因此余烬将继续附加到数组中。这是一项要求,或者您可以在模型上使用primaryKey:
指定不同的主键。Ember通过ID
确定唯一记录。编辑后,它不起作用。primaryKey
未按预期工作,您必须在JSON中发送ID
字段,直到它被修复。这是不幸的,我想这就是为什么Ember数据还不是1.0…简单有效:)