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 为我指明了正确的方向!