假设我有一个像下面这样的div,我的目标是根据传递给getClassText
方法的vue数据模型属性的名称将它的css类设置为一些计算的类字符串:
<div :class="getClassText('lastName')">
使用此javascript:
new Vue({
el: '#app',
data: {
firstName: '',
lastName: ''
},
methods: {
getClassText: function (fieldName) {
var valueOfField = NeedHelpHere(fieldName);
//some complex calculations based on the valueOfFild
return resultOfComplexCalculations;
}
}
});
在NeedHelpHere(fieldName)
方法中,我需要能够返回基于Vue数据模型属性的属性名称的值。如何用Vue完成?
注意:我意识到我可以在不引用lastName的情况下调用该方法,这将导致传递属性的值。
<div :class="getClassText(lastName)">
但是为了更好地理解Vue,我想知道如何调用将属性名称作为字符串传递的方法
<div :class="getClassText('lastName')">
使用这种方法,在NeedHelpHere(fieldName)
方法内部,我需要能够返回基于Vue数据模型属性的属性名称的值。如何用Vue完成?
答案 0 :(得分:4)
如果您不想直接传递值,可以这样做:
HTML:
<div id="app">
<div :class="getClassText('lastName')">fooo</div>
</div>
JS Part:
new Vue({
el: '#app',
data: {
firstName: '',
lastName: 'my-class'
},
methods: {
getClassText: function (fieldName) {
if (this.$data.hasOwnProperty(fieldName)) {
return this.$data[fieldName]
}
return
}
}
});