我创建了一个自定义组件,允许用户为基于数字的搜索选择数学运算符。除了验证之外,一切正常。我在下面包含了屏幕截图来说明我的意思,并且还显示了模型的相关部分。
如果我输入数字或非数字验证,如下所示。
如果我输入一个数字,虽然它没有显示错误,但它不会显示绿色突出显示:
然后,如果我删除它,它会显示空错误:
其他数字字段没有像我预期的那样从模型中删除,而是设置为 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>