在 angularjs 1.5 组件中设置有效性

Posted

技术标签:

【中文标题】在 angularjs 1.5 组件中设置有效性【英文标题】:Set validity in angularjs 1.5 component 【发布时间】:2017-08-12 06:38:42 【问题描述】:

Angularjs .directives 中的链接函数在网上有很多例子来操作 dom

require: 'ngModel',
link: function(scope,elem, attr,ctrl)
    ctrl.$setValidity('element-name', false);
// and setting has-error
    elem.parent().hasClass('has-error');

在 Angularjs 1.5 es5 .component 上这种工作是如何完成的?

我已经看到你可以注入$element,$attrs,尽管没有任何人使用它们或如何注入 ngModel 作为 ctrl 来设置有效性的例子。我是否错过了一些超级简单的东西,每个人都知道如何做到这一点,或者没有人尝试在组件中使用这些。

【问题讨论】:

这篇 *** 帖子应该对您有所帮助 ***.com/questions/36721551/… @Pramod_Para 我说不是.directive 我正在尝试在组件中完成此操作。或者这只是组件中无法完成的事情。 您的意思是不使用任何角度组件? @Pramod_Para .component 是一个特定的组件,例如 Angular2 组件 example。 是的,您可以在 angular.component 中设置有效性。但其中没有支持链接功能,您可以使用它来设置有效性。但是您可以提出另一种解决方案来设置验证,这基本上涉及将元素嵌入到表单标签中。您可以在组件的控制器工厂函数中获取此表单引用,并设置有效性。 【参考方案1】:

是的,您可以在 angular.component 中设置有效性。但是其中不支持链接功能,您可以使用它来设置有效性。但是您可以提出另一种解决方案来设置验证,这基本上涉及将元素嵌入到表单标签中。您可以在组件的控制器工厂函数中获取此表单引用,并设置有效性。

【讨论】:

以防万一人们想知道如何为输入提供错误或成功大纲。这取决于您使用的是什么。我正在使用引导程序,所以我把ng-class=" 'has-error': $ctrl.formName.inputName.$invalid, 'has-success': $ctrl.formName.inputName.$valid" and have this.$onInit` fn 更改为输入的有效性。 以及我的组件与表单项的连接。 this.formName.inputName.$setValidity('formName,inputName', false) 无效。

以上是关于在 angularjs 1.5 组件中设置有效性的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs - 如何在服务中设置模块值?

使用 ngResource 在 AngularJS 中设置 enctype

如何在 AngularJS 指令范围中设置默认值?

在 AngularJS 中设置 JSONP 回调函数

如何在angularjs中设置范围滑块的时间?

sh 使用HomeBrew在Mac OSX中设置Golang 1.5。在zshell或bash中设置`GOPATH`和`GOROOT`变量。