【问题标题】:How to use computed for object attribute?如何将计算用于对象属性?
【发布时间】:2019-09-12 12:35:36
【问题描述】:

我想从一个要计算的对象中获取一个属性,但据我所知,这是不支持的。

我尝试过使用 objects.atributes:{ /*codes */ } 之类的东西,但出现错误。

我想实现这样的目标:

<template>
    <div class="form">
        <form>
            <div class="form-group">
                <label>First Name : </label>
                <input type="text"  v-model="firstName" name="firstname" class="form-control">
            </div>
            <div class="form-group">
                <label>Last Name : </label>
                <input type="text"  v-model="lastName" name="lastname" class="form-control">
            </div>
            <div class="card text-center">
                Full name is: {{ formdata.fullname }}
            </div>

        </form>
    </div>
</template>

<script>
export default {
  data(){
    return {
      firstName:'',
      lastName:'',
      formdata:{
        computed:{
          fullname:{
            get:function(){
              return this.firstName + ' ' + this.lastName
            }
          }
        }
      },
    }
  },
  /*    I have tried this too, and got syntax error
  computed:{
    formdata.fullname{
      get:function(){
        return this.firstName + ' ' + this.lastName
      }
    }
  }
  */
}
</script>



我希望显示全名,但没有。

【问题讨论】:

    标签: vue.js computed-properties v-model


    【解决方案1】:

    计算属性是在数据对象之外定义的。这样做:

    export default {
        data() {
            return {
                firstName:'',
                lastName:'',
            }
        },
        computed: {
            fullname: function() {
                return this.firstName + ' ' + this.lastName;
            }
        }
    }
    
    <div class="card text-center">
        Full name is: {{ fullname }}
    </div>
    

    【讨论】:

    • 有什么办法可以把它放在一个对象中?所以我可以像formdata.fullname 一样访问它?因为我会以各种方式处理数据。
    猜你喜欢
    • 2015-09-20
    • 1970-01-01
    • 2021-10-10
    • 2019-09-10
    • 2017-06-07
    • 2010-11-23
    • 1970-01-01
    • 2021-09-01
    • 2021-11-08
    相关资源
    最近更新 更多