gpt4 book ai didi

ajax - Ember 以 slug 为 id 向数据添加空行

转载 作者:行者123 更新时间:2023-12-04 21:17:24 25 4
gpt4 key购买 nike

我有一个资源,可以在其中列出服务器/projects 中的所有项目。您可以访问/projects/:slug 的特定项目。

当我访问项目资源时,我在 Ember Inspector 中看到了以下数据:

/项目

id  | Slug              | Title                 |
-------------------------------------------------
1 | first-project | First project |
-------------------------------------------------
2 | second-project | Second project |
-------------------------------------------------
3 | third-project | Third project |

当我从项目列表访问一个项目时,我在没有新的 ajax 请求的情况下获得相同的数据,并且一切正常。 /projects/第一个项目

当我刷新时出现问题 /projects/第一个项目页。 Ember 发出一个 ajax 请求从服务器获取数据,但它也会插入一个空行,其中 slug 作为 id 到数据。
id              | Slug              | Title                 |
-------------------------------------------------------------
first-project | | |
-------------------------------------------------------------
1 | first-project | First project |

现在访问项目列表它显示了一个项目列表,但在列表顶部是这个空行。为什么将这个 slug 行插入到我的数据中?也许我的逻辑是错误的。
<li>
<a id="ember451" class="ember-view" href="/projects/undefined">
<script id="metamorph-13-start" type="text/x-placeholder"></script>
<script id="metamorph-13-end" type="text/x-placeholder"></script>
</a>
</li>

我的项目代码:
App.Router.map(function() {
this.resource('project', { path: '/projects' }, function() {
this.resource('project.show', { path: ":post_slug"});
});
});

App.Project = DS.Model.extend({
slug: DS.attr("string"),
title: DS.attr("string")
});

App.ProjectIndexRoute = Ember.Route.extend({
model: function() {
return this.store.find('project').then(function(data) {
return data;
});
}
});

App.ProjectShowRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('project', params.post_slug).then(function(data) {
return data;
});
},
serialize: function(model) {
return { post_slug: model.get("slug") };
}
});

我正在使用:
DEBUG: ------------------------------- 
DEBUG: Ember : 1.1.2
DEBUG: Ember Data : 1.0.0-beta.3
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 1.9.1
DEBUG: -------------------------------

最佳答案

添加这有帮助。现在主键是 Project 模型的 slug 并且它不重复行。

App.ProjectSerializer = DS.RESTSerializer.extend({
normalize: function(type, hash, property) {
hash.id = hash.slug;
return this._super(type, hash, property);
}
});

关于ajax - Ember 以 slug 为 id 向数据添加空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19727250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com