v模型上的Vue获取者和设置者:

时间:2019-08-07 02:21:31

标签: vue.js computed-properties

我有一个包含大约30个字段的表单,我想使用getter和setter进行一些验证,但是您在计算中使用它们,并且不能具有相同名称的计算值和数据值。

有一些示例,其中模型和计算的属性相同,而设置者设置数据模型,但这仅以一个字段为例。实际上,对我而言,这样做将是一个体面的重构。有没有办法维持我的modeldata的连接并使用getter / setter方法?

表单-使用库Vue-Form-Generator

<form action="#">
  <vue-form-generator
    :schema="schema"
    :model="model"
    options="formOptions"
  >
  </vue-form-generator>
</form>

数据属性:

 data: function () {
  return {
    model:{
        id: "",
        strategyId: Number, 
        name: "",
        symbol: "", 
        symbolPair: "",
        entryType: "", 
        conditionalLongEntryPoint: Number, 
        conditionalShortEntryPoint: Number, 
        entryPrice: Number, 
   ....

1 个答案:

答案 0 :(得分:1)

https://vuejs.org/v2/guide/forms.html#Modifiers

如果您只需要验证用户是否在input type="number"的字段中提供了一个数字,那么这可能就是您想要的。

如果您需要的还不止这些,我建议您在data的{​​{1}}成员上设置一个watch属性,并在该函数中进行验证。为此,您可以对要检查其有效性的数据成员执行正则表达式匹配。

您似乎想要的是在数据成员上具有getter和setter的能力,这是开箱即用的。与之最接近的是在调用v-modelget方法时应用条件逻辑,这将成为Vue组件或根实例中set对象的一部分。