1

我创建了一个自定义组件,允许用户为基于数字的搜索选择数学运算符。除了验证之外,一切正常。我在下面包含了屏幕截图来说明我的意思,并且还显示了模型的相关部分。

如果我输入数字或非数字验证,如下所示。

按预期进行验证

如果我输入一个数字,虽然它没有显示错误,但它不会显示绿色突出显示:

验证权虽然没有绿色突出显示

然后,如果我删除它,它会显示空错误:

在此处输入图像描述

其他数字字段没有像我预期的那样从模型中删除,而是设置为 null,这在验证通过时很好。但在这里,它不是。我注意到它不会被添加到 $$value$$['value'] 除非它是一个数字,而在普通数字字段的情况下,它也会在 null 时添加。

任何人都可以建议为什么会发生这种情况如何解决这个问题?

注意:我也没有在 ngForm 下看到这些自定义组件?不确定是否相关-也许,因为我无法手动设置原始...

在此处输入图像描述

编辑:根据要求,这是我的 operator.html 模板文件:

<div class="form-group {{form.htmlClass}}" ng-class="{'has-error': hasError()}">

  <div style="height: 45px;!important">

    <label class="control-label" ng-show="showTitle()">{{form.title}}</label>

    <div ng-class="{'input-group': (form.fieldAddonLeft || form.fieldAddonRight)}">
    <span ng-if="form.fieldAddonLeft"
          class="input-group-addon"
          ng-bind-html="form.fieldAddonLeft"></span>

      <input style="float: right; width: 75%; background-color: white; " ng-show="form.key"
             type="number"
             class="form-control"
             schema-validate="form"
             ng-model="$$value$$.value"/>

      <select ng-model="$$value$$.operator" style="float: left; width: 25%;" class="form-control"
              ng-options="operator as operator.label for operator in $parent.$parent.$parent.mappingUsedByDropdown[form.title]">
      </select>

    <span ng-if="form.fieldAddonRight"
          class="input-group-addon"
          ng-bind-html="form.fieldAddonRight"></span>

    </div>
  </div>

  <span class="help-block">{{ (hasError() && errorMessage(schemaError())) || form.description}}</span>
</div>
4

0 回答 0