【发布时间】:2013-10-14 23:50:32
【问题描述】:
我正在制作一个自定义自动完成指令,该指令在其自身内部使用 <input>,但我在弄清楚如何向下传递“必需”属性以及其他具有我可以看到的值的属性时遇到了一些麻烦但无论是否设置,“必需”似乎都是空白的。我的回报声明的第一部分如下:
return {
restrict: 'E',
template: tpl,
replace: true,
scope: {
suggestionsPath: '=autoComplete',
method: '@method',
term: '@term',
required: '@required',
ngModel: "="
}...
谢谢!
【问题讨论】:
-
你可以尝试
ng-required,并在你的指令范围内尝试ngRequired。 -
您还可以查看链接函数中
attrs.required属性中的内容,看看是否有什么东西。 -
您是否有理由为此需要隔离范围?它可能看起来更简单,但通常并非如此。如果您需要动态绑定,我建议对“ngModelController”提出不同的要求并使用“attrs”和 $scope.$watch。如果您想要更完整的解决方案,请告诉我,如果您发布 jsFiddle 或其他我会尽力提供帮助的内容。
-
@ChrisNicola 嘿,感谢您的回复。我正在使用隔离范围,因为角度文档说这最适合可重用组件,当然文档可能是错误的:) 我正在尝试将自动完成指令设计为“扩展”输入指令,因此它需要尽可能像输入一样发挥作用,即将其标记为需要并将其包含在验证例程中。
-
如果你想扩展一个输入指令,那么我强烈推荐使用 ngModelController。我将发布一个基本的答案,我们可以来回走动。我不确切知道你的指令需要做什么,所以它可能不完整。
标签: javascript validation angularjs