3

我正在使用 ember.js 1.0.0-pre4,ember-data 修订版 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('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'
})
4

2 回答 2

2

我现在遇到了同样的问题,这是我的小修补程序:

{{#if id}}
<div>
    {{title}}
</div>
{{/if}}

在模板中,我仅在设置了 id 时才从商店渲染项目(只有那些来自数据库)。但是您可能已经解决了!

(使用修订版 12)

于 2013-03-19T16:13:21.050 回答
0

原来你可以做这样的事情来全局自定义主键

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";
    }
})
})
于 2013-02-28T21:14:36.997 回答