javascript - vue 2.3 AJAX数据绑定(bind)不更新

标签 javascript ajax data-binding vue.js vuejs2

成功的 ajax 调用后,页面上呈现的数据不会更新。它仍然是空的/null。

我似乎缺少如何连接作为前端变量返回的数据和动态/实时渲染的 html 元素。

这里是上下文的相关代码片段。由此可以清楚地看出遗漏/不正确的内容吗?

Javascript

page = new Vue({

  el: "#container",

  data: {
    option_id: null,
    option_name: null
  },

  created:function() {

    $.ajax({
      type: 'POST',
      contentType: 'application/json',
      dataType: 'json',
      url: 'ajax_methods/get_option',
      success: function (ajax_data) {

        self = this;

        self.option_id = ajax_data.option_id;        
        self.option_name = ajax_data.option_name;

      },
      error: function (e) {
        console.log(e)
      }
    })

  }
})

HTML

<script type="text/javascript" src="https://unpkg.com/vue@2.3.3"></script>
<div id="container">

  <p>{{ option_name }}</p>

    <button v-on:click="send_option()"
      type="button"
      id="left_button"
      name="left_button"
      v-bind:value="option_id">

</div>

检查 AJAX 是否成功

在控制台中输入以下内容时,非空值会按预期返回:

  • self.option_id
  • self.option_name

最佳答案

您需要在回调外部捕获this

created: function(){

    const self = this;

    $.ajax({
      type: 'POST',
      contentType: 'application/json',
      dataType: 'json',
      url: 'ajax_methods/get_option',
      success: function (ajax_data) {

        self.option_id = ajax_data.option_id;        
        self.option_name = ajax_data.option_name;

      },
      error: function (e) {
        console.log(e)
      }
    })
}

关于javascript - vue 2.3 AJAX数据绑定(bind)不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45746909/

相关文章:

wpf - 无法编辑我的 DataGrid WPF Framework 4.5 的单元格

javascript - 如何在不执行操作的情况下从下拉列表中存储值以在其他 php 页面中使用

javascript - 链接需求的正确方法

ASP.NET MVC Beta Ajax升级问题

javascript - javascript中的内存泄漏,循环内的函数

javascript - 当使用 AJAX 创建元素时,如何以不显眼的方式将函数绑定(bind)到元素的单击

wpf - 每次打开 ContextMenu 时如何强制绑定(bind)评估?

javascript - 小型 node.js 示例中的回调队列顺序

javascript - Google map 使用 javascript 渲染图像或图像文件?

android - viewPager 和数据绑定(bind) android