Vue.js:如何在 .vue 模板文件中的 vue 方法中设置数据变量

Posted

技术标签:

【中文标题】Vue.js:如何在 .vue 模板文件中的 vue 方法中设置数据变量【英文标题】:Vue.js: how do you set a data variable in a vue method inside a .vue template file 【发布时间】:2017-02-17 02:05:31 【问题描述】:

我今晚第一次学习 vue.js,我无法理解为什么当我在数据函数中设置“列表”数组时,我无法在下面的方法中更改它。我有以下代码,我的模板仍然吐出我原来的 name: 'daniel', name: 'lorie' 变量。

我的 http 调用肯定是在进行,因为我可以在网络选项卡中看到大约 100 个用户的数组,但是“this.list = data”没有重置我的数据变量

<template>
  <pre>list</pre>
</template>

<script>
export default 
  data () 
    return 
      list: [name: 'daniel', name: 'lorie']
    
  ,
  created () 
    this.fetchContactList()
  ,
  methods: 
    fetchContactList () 
      this.$http.get('https://jsonplaceholder.typicode.com/users', (data) => 
        this.list = data
      )
    
  

</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
  ul.user-list 
    background: #fafafa;
    border:1px solid #ebebeb;
    padding:40px;
    li 
      list-style: none;
      display: block;
      margin-bottom:10px;
      padding-bottom:10px;
      border-bottom:1px solid #ebebeb;
    
  
</style>

【问题讨论】:

【参考方案1】:

您正试图在选项参数中传递您的成功回调。 $http 服务使用以下格式的承诺:

this.$http.get('/someUrl', [options]).then(successCallback, errorCallback);

将您的获取请求更改为:

this.$http.get('https://jsonplaceholder.typicode.com/users').then( (response) => 
    this.list = response.body; // The data you want is in the body
  );

【讨论】:

以上是关于Vue.js:如何在 .vue 模板文件中的 vue 方法中设置数据变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将 vue.js 模板分离到 .vue 文件中,同时将代码保留在 .js 中?

在HTML页面中引入vue组件

vue.js指南

视频Vue Beyond Vue Loader

Vue.js - 从模板内访问数据属性而不使用 vue 文件中的道具

如何将 HTML 模板导入 Vue.js 项目?