Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我在flask模板中得到了正确的对象,但在click函数中得到了一堆数字?_Javascript_Flask - Fatal编程技术网

Javascript 为什么我在flask模板中得到了正确的对象,但在click函数中得到了一堆数字?

Javascript 为什么我在flask模板中得到了正确的对象,但在click函数中得到了一堆数字?,javascript,flask,Javascript,Flask,我正在使用flask开发一篇文章评论。然而,当我通过click handler函数从flask测试commentIp对象时,我得到的是一个数字字符串,而不是对象 这是模板代码。(cips:cip对象的数组;我在模板中获得了正确的对象) 将值放入模板时,它将采用文本值。javascript无法理解cips的数组。想想看,这是一个用python定义的对象列表——javascript怎么知道这些对象是什么?它适用于您的值,如comment.upvoteNum,因为这是一个文本值。它不理解这些对象-您可

我正在使用flask开发一篇文章评论。然而,当我通过click handler函数从flask测试commentIp对象时,我得到的是一个数字字符串,而不是对象

这是模板代码。(cips:cip对象的数组;我在模板中获得了正确的对象)


将值放入模板时,它将采用文本值。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
    }