【问题标题】:Vue getters and setters on v-model:v-model 上的 Vue getter 和 setter:
【发布时间】:2019-12-14 14:32:57
【问题描述】:

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

已经有模型和计算属性相同,setter设置数据模型的例子,但这只是以一个字段为例。在实践中,我这样做将是一个不错的重构。有没有办法维持我的modeldata 的连接并使用getter/setter?

Form-使用库 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, 
   ....

【问题讨论】:

    标签: vue.js computed-properties


    【解决方案1】:

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

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

    如果您需要更多,我建议您在 data 的成员上设置一个监视属性,您 v-model 并在该函数中进行验证。为此,您可以对正在检查有效性的数据成员执行正则表达式匹配。

    您似乎要求的是在数据成员上拥有 getter 和 setter 的能力,这是开箱即用的。最接近它的是在调用 getset 方法时应用条件逻辑,这将是 Vue 组件或根实例中 methods 对象的一部分。

    【讨论】:

    • 感谢您的反馈,不幸的是它对我来说太复杂了。我将不得不退出这个 Vue-Form-Generator 并使用常规输入字段,可能我会编写一个小表单库来进行验证。感谢您的帮助。
    猜你喜欢
    • 2020-12-12
    • 1970-01-01
    • 2015-03-11
    • 2019-10-23
    • 2018-02-06
    • 2019-02-14
    • 2020-03-31
    • 1970-01-01
    • 2023-02-03
    相关资源
    最近更新 更多