gpt4 book ai didi

backbone.js - 对使用 Backbone.js 和 Tastypie 从服务器预加载集合一无所知

转载 作者:行者123 更新时间:2023-12-04 03:02:46 25 4
gpt4 key购买 nike

我正在尝试使用backbone.js 显示项目列表。基本上,backbone 应该能够将项目 .fetch() 到 Projects 集合中。正如我从充满项目的异步请求中可以看出的那样,这是有效的。

但是,如何在页面加载时呈现它们?关于对“引导模型”使用 Reset() 方法的文档并不多。任何帮助表示赞赏!谢谢。

app.js:

var oldSync = Backbone.sync;

Backbone.sync = function(method, model, success, error){
var newSuccess = function(resp, status, xhr){
if(xhr.statusText === "CREATED"){
var location = xhr.getResponseHeader('Location');
return $.ajax({
url: location,
success: success
});
}
return success(resp);
};
return oldSync(method, model, newSuccess, error);
};

(function($) {
window.Project = Backbone.Model.extend({});

window.Projects = Backbone.Collection.extend({
model: Project,
url: PROJECT_ENDPOINT,
parse: function(data) {
return data.objects;
}
});

window.ProjectView = Backbone.View.extend({
tagName: 'li' ,
className: 'project',



initialize: function() {
_.bindAll(this, 'render');
this.model.bind('change', this.render);

this.projects = new Projects();
this.projects.fetch(function(data) {
console.log("haha");
});

this.template = _.template($('#project-template').html());
},
render: function() {
var renderedContent = this.template(this.model.toJSON());
$(this.el).html(renderedContent);
return this;
}
});

})(jQuery);

模板:

.........
<script>
PROJECT_ENDPOINT = "{% url api_dispatch_list resource_name="project" %}";
</script>


<script type="text/template" charset="utf-8" id="project-template">
<span class="project-title"><%= title %></span>
</script>

</head>

<body>
<div id="container"></div>
</body>
</html>

最佳答案

您可以将引导模型添加到模板中:

<script>
PROJECT_ENDPOINT = "{% url api_dispatch_list resource_name="project" %}";
INITIAL_DATA = <%= collection.to_json %>
</script>

然后在 View 构造函数中将 this.projects.fetch(...) 替换为 this.projects.reset(INITIAL_DATA)

关于backbone.js - 对使用 Backbone.js 和 Tastypie 从服务器预加载集合一无所知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336383/

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