Javascript 为什么我在flask模板中得到了正确的对象,但在click函数中得到了一堆数字?
我正在使用flask开发一篇文章评论。然而,当我通过click handler函数从flask测试commentIp对象时,我得到的是一个数字字符串,而不是对象 这是模板代码。(cips:cip对象的数组;我在模板中获得了正确的对象)Javascript 为什么我在flask模板中得到了正确的对象,但在click函数中得到了一堆数字?,javascript,flask,Javascript,Flask,我正在使用flask开发一篇文章评论。然而,当我通过click handler函数从flask测试commentIp对象时,我得到的是一个数字字符串,而不是对象 这是模板代码。(cips:cip对象的数组;我在模板中获得了正确的对象) 将值放入模板时,它将采用文本值。javascript无法理解cips的数组。想想看,这是一个用python定义的对象列表——javascript怎么知道这些对象是什么?它适用于您的值,如comment.upvoteNum,因为这是一个文本值。它不理解这些对象-您可
将值放入模板时,它将采用文本值。javascript无法理解
cips
的数组。想想看,这是一个用python定义的对象列表——javascript怎么知道这些对象是什么?它适用于您的值,如comment.upvoteNum
,因为这是一个文本值。它不理解这些对象-您可能看到了对象内存地址。因此,为了将{{cips}转换成javascript中的数组,需要将这些对象转换为json
。Flask为此提供了一些方便的功能—签出tojson
—它的HTML安全和json安全。看起来您还试图更新传入的模型的状态(即upvote)。您可能希望将其提交给flask视图函数,因此请记住,对HTML中的cip对象所做的更改就是这样。除非发送回服务器并进行处理,否则它们不会反映在python中的cip模型中
{% for i in range(0,comments |length) %}
{% set comment=comments[i] %}
<p>{{ loop.index }}. Email:{{ comment.email }}</p>
<p>PostTime:{{ comment.postTime }}</p>
<p>Content:{{ comment.content }}</p>
{% set up_btn_id='up_btn'~ i|string %}
{% set down_btn_id='down_btn'~ i|string %}
{% if cips[i].vote_state ==0 %}
<button id='{{up_btn_id}}' onclick="upVote(this)">up:{{ comment.upvoteNum }}</button>
<button id="{{down_btn_id}}" onclick="downVote(this)">down:{{ comment.downvoteNum }}</button>
{% elif cips[i].vote_state ==1 %}
<button id='{{up_btn_id}}' onclick="upVote(this)" style="color: green">up:{{ comment.upvoteNum }}</button>
<button id="{{down_btn_id}}" onclick="downVote(this)">down:{{ comment.downvoteNum }}</button>
{% else %}
<button id='{{up_btn_id}}' onclick="upVote(this)">up:{{ comment.upvoteNum }}</button>
<button id="{{down_btn_id}}" onclick="downVote(this)" style="color: red">down:{{ comment.downvoteNum }}</button>
{% endif %}
{% if flag==1 %}
<form action="../cdelete/{{ comment.id }}" method="post">
Password:<input type="password" name="psw">
<input type="submit" value="delete">
</form>
{% endif %}
{% endfor %}
function upVote(up_btn) {
const cips = '{{cips}}';
for (let cip in cips)
console.log(cip);//a bunch of Numbers from 0 to 72
}