我有一个我构建的大型Web表单(超过100个字段),我想添加AngularJS以使用户能够键入表单并运行Javascript以在键入时将Angular Model存储在数据库中。很明显,每当用户改变一小段数据时,我都不想将数据发送到数据库,所以我想使用ng-model-options
指令告诉Angular只发起updateOn
大约500ms后。
我真的不想对我的HTML中的每个<input>
标记应用大量的角度,但是很多打字,如果我想要改变某些内容,那么&# #39;有很多地方可以通过并手动更新。我真正喜欢做的事情就像$("input").setDirective()
或某些事情(如果它存在的话)。我意识到我是以jQuery类型的方式思考这个问题,所以我很有兴趣听到#34;正确的&#34;将同一组指令应用于我的DOM中与某些选择器匹配的每个元素的角度方式。
谢谢!
答案 0 :(得分:4)
对@Bodzio回答的修改很少
<强> HTML 强>
<div ng-app="app">
<input type="text" name="something" />
<input type="text" />
<input type="text" />
<input type="text" name="different" />
<input type="radio" name="different" />
</div>
<强> JS 强>
var app = angular.module('app', []);
app.directive('input', function() {
return {
restrict: 'E',
link: function (scope, element, attributes) {
// filter the element using attributes
if (attributes.type === "text" && attributes.name) {
element[0].value = "It works!";
}
}
};
});
<强> JSFIDDLE DEMO 强>
答案 1 :(得分:1)
你可以像这样为<input>
标签创建一个指令:
var app = angular.module('app', []);
app.directive('input', function() {
return {
restrict: 'E',
link: function (scope, element) {
element[0].style.backgroundColor = "red";
}
};
});
答案 2 :(得分:0)
我发现有一个类似的问题,我只是不知道如何搜索它:Add directives from directive in AngularJS。使用它作为我的模板,我想出了如何将新指令应用于包含自定义指令的所有内容。我无法弄清楚如何直接将其应用于所有<input>
代码,但向saveme
所有<input>
添加{{1}}指令并不需要太长时间。 ;)