gpt4 book ai didi

php - 如何使用backbone.js从服务器渲染数据

转载 作者:行者123 更新时间:2023-11-28 09:34:23 24 4
gpt4 key购买 nike

首先提供信息,这是我来自服务器的响应

$response = array();
$i = 0;
while($result = mysql_fetch_assoc($query)){
$response[$i]["id"] = $result["ID"];
$response[$i]["post_date"] = $result["post_date"];
$response[$i]["post_content"] = $result["post_content"];
$response[$i]["nickname"] = $result["nickname"];
$i++;
}
echo json_encode($response);

似乎@k33g_org方式确实有效,但现在控制台说我Uncaught ReferenceError:昵称未定义

我的模板是

<script type="text/template" id="tplhome_post_list">
<div class="post">
<div class="view">
<p class="header_post">
<%= nickname %> - Le <%= post_date %>
</p>
<div class="statut">
<div class="like">
8
</div>
<div class="reply">
25
</div>
</div>
<p class="clear">
<%= post_content %>
</p>
</div>
</div>
</script>

如何解决?定义模板值??

最佳答案

你必须像这样编写 fetch :

Posts.fetch({
success:function(data) {
/* when you get data from server request data variable is populated */
/* then you can call render() method of the view */
},
error : function(err) {
throw "Houston we've got a problem...";
}
});

您可以将数据传递给渲染方法(类似这样)

    render : function(data) {
var renderedContent = this.template(this.data.toJSON());
$(this.el).html(renderedContent);
return this;
}

或者,更好的是,您可以将集合的重置事件绑定(bind)到 View ,在 View 的 initialize 方法中,输入:

_.bindAll(this, 'render');
this.collection.bind('change', this.render);
this.collection.bind('add', this.render);
this.collection.bind('remove', this.render);

然后当集合内容改变时(即获取时),调用render()

关于php - 如何使用backbone.js从服务器渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305865/

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