javascript - 无法调用 Mounted() 内的函数

标签 javascript html vue.js vuejs2 vue-component

我有一个聊天 API,正在连接到 Vue.js 项目。

当用户进入聊天室页面时,它会发送一个ajax请求,然后调用获取整个聊天记录的函数:

mounted() {
$.ajax({
  url: `http://localhost:8000/api/rooms/${this.$route.params.id}/`,
  data: {username: this.username},
  type: 'PATCH',
  success: (data) => {
    const user = data.members.find((member) => JSON.parse(member).username === this.username)

    if (user) {
      // The user belongs/has joined the session
      this.fetchChatSessionHistory(this.$route.params.id)
    }
  }
})


},

  fetchChatSessionHistory (uri) {
    $.get(`http://127.0.0.1:8000/api/rooms/${uri}/messages/`, (data) => {
      this.messages = data.messages
    })
  },

但失败了:

TypeError: _this.fetchChatSessionHistory is not a function

我知道它可能定义在错误的地方,但我不知道如何正确执行。

最佳答案

您应该将该函数放入 methods 属性中,如下所示:

mounted(){
      ...
      },
 methods:{
     fetchChatSessionHistory (uri){
         ....
      }
   }

关于javascript - 无法调用 Mounted() 内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54079726/

相关文章:

javascript - Dojo FilteringSelect - 更新下拉列表或手动过滤器

javascript - 进度条行为取决于复选框 bootstrap + jquery

javascript - 如何将数据从 Vue js 方法范围传递到外部 JS 文件?

javascript - 如何修复 VUEX 中的状态变化?

javascript - 如何更改 Chart JS 中日期轴上显示的 'months' 语言?

javascript - 真的没有办法从失败的 js 获取请求中获取响应主体吗?

javascript - Angular js $window.open 无法在移动浏览器的 .success 中工作

javascript - HTML5 音频是否有 oncomplete 事件?

javascript - 如何在 javascript 中使用 document.execCommand 创建电子邮件链接

regex - 如何使用查找和替换在 vscode 中将所有驼峰式字符串替换为 kebab 式字符串