Angular 用必需的属性包装了 uib-dropdown
Angular wrapped uib-dropdown with required attribute
我正在尝试为 Angular 表单创建自定义验证,我在其中使用 uib-dropdown
包装在自定义组件中。
在几种情况下,下拉菜单会更改第二个下拉菜单的内容。在某些情况下,第二个下拉菜单没有选项,因此表单应该无法提交。
<my-select
options="$ctrl.formModel.myModel()"
label-field="name"
ng-model="$ctrl.formModel.mySelectedItem"
ng-required>
</my-select>
包裹在 my-select
中,这是一个自定义 uib-dropdown
实现(主要是添加 类)
由于 uib-drodown
中有表单元素,我无法以常规方式进行验证。
有没有一种方法可以通过模型的内容进行验证?
同样的组件也可能有非 ng-required
实现。
谢谢!
对于我的组件,我最终做了:
self.$onChange = () => {
if (_.isUndefined(self.model)) {
return self.ngModelCtrl.$setValidity('required', false);
} else {
return self.ngModelCtrl.$setValidity('required', true);
}
}
将 $setValidity
设置为 required
是我所需要的,但出于验证目的,它可能会更改为任何内容。
感谢@georgeawg 为我指明了正确的方向!
我正在尝试为 Angular 表单创建自定义验证,我在其中使用 uib-dropdown
包装在自定义组件中。
在几种情况下,下拉菜单会更改第二个下拉菜单的内容。在某些情况下,第二个下拉菜单没有选项,因此表单应该无法提交。
<my-select
options="$ctrl.formModel.myModel()"
label-field="name"
ng-model="$ctrl.formModel.mySelectedItem"
ng-required>
</my-select>
包裹在 my-select
中,这是一个自定义 uib-dropdown
实现(主要是添加 类)
由于 uib-drodown
中有表单元素,我无法以常规方式进行验证。
有没有一种方法可以通过模型的内容进行验证?
同样的组件也可能有非 ng-required
实现。
谢谢!
对于我的组件,我最终做了:
self.$onChange = () => {
if (_.isUndefined(self.model)) {
return self.ngModelCtrl.$setValidity('required', false);
} else {
return self.ngModelCtrl.$setValidity('required', true);
}
}
将 $setValidity
设置为 required
是我所需要的,但出于验证目的,它可能会更改为任何内容。
感谢@georgeawg 为我指明了正确的方向!