gpt4 book ai didi

angularjs - 获取输入的 ngModelController

转载 作者:行者123 更新时间:2023-12-05 00:24:28 26 4
gpt4 key购买 nike

我需要访问输入元素的 ngModelController 来检查它是脏的还是原始的。

我已经设法使用指令来完成它,该指令将输入的 ngModel 抓取到与元素关联的数据对象,使其可以从任何地方获得:

app.directive("input", [ function () {
return {
restrict: "E",
replace: false,
scope: false,
require: "ngModel",
link: function (scope, element, attrs, ctrls) {
element.data('ngModelController', ctrls);
}
}
}])

我知道可以修改它以将指令作为属性,从而减少与“输入”标签的耦合。

我在代表 UI 元素并具有 input 的指令中使用保存的 Controller 标记中的元素。我不使用表单,因为这些元素应该可以在任何 dom 上下文中工作,并且表单暗示了对层次结构的某些限制。所以我使用 ngModelController 来检查验证字段所需的一些东西。

但是有没有更好的方法来获取某些输入的 ngModelController ?

最佳答案

根据我的经验,Angular 已经为您提供了这一点。在要访问 ngModelController 的指令中,执行以下操作:

app.directive("randomDirective", function() {
return {
...
require: "ngModel",
link: function(scope, element, attrs, ctrl) {
var someInput = element.find('theInput'),
ngModelCtrlForInput = someInput.data().$ngModelController;
//Now you can access the ngModel controller for the <input> of the directive
}
}
});

这是否是实现这一壮举的最佳方式还有待观察。我还没有看到任何更好的答案(但如果你知道一个,请告诉我并告诉我!)。

编辑

This answer还有一些其他选项,包括类似于:
element.find('theInput').controller('ngModel')

关于angularjs - 获取输入的 ngModelController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26299710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com