Ron*_*n C 2 javascript vue.js vuejs2
假设我有一个如下所示的div,我的目标是根据传递给该getClassText方法的vue数据模型属性的名称,将其css类设置为一些计算出的类字符串:
<div :class="getClassText('lastName')">
Run Code Online (Sandbox Code Playgroud)
使用此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;
}
}
});
Run Code Online (Sandbox Code Playgroud)
在NeedHelpHere(fieldName)方法内部,我需要能够基于属性名称返回Vue数据模型属性的值。Vue如何做到?
注意:我意识到我可以在不使用lastName的情况下调用该方法,这将导致传递属性值。
<div :class="getClassText(lastName)">
Run Code Online (Sandbox Code Playgroud)
但是为了更好地理解Vue,我想知道如何调用将属性名作为字符串传递的方法,如下所示
<div :class="getClassText('lastName')">
Run Code Online (Sandbox Code Playgroud)
通过这种方法,在NeedHelpHere(fieldName)方法内部,我需要能够返回基于Vue数据模型属性的属性名称的值。Vue如何做到?
如果您不希望直接传递值,可以这样做:
HTML:
<div id="app">
<div :class="getClassText('lastName')">fooo</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JS部分:
new Vue({
el: '#app',
data: {
firstName: '',
lastName: 'my-class'
},
methods: {
getClassText: function (fieldName) {
if (this.$data.hasOwnProperty(fieldName)) {
return this.$data[fieldName]
}
return
}
}
});
Run Code Online (Sandbox Code Playgroud)
演示:http : //jsbin.com/rutavewini/edit?html,js,输出