我在角度视图中有一个表单。在表单上的按钮中,我添加了一个事件,使用$ http向服务器发送请求。在将请求发送到服务器之前,我需要使用jQuery Validate验证表单。
要验证表单,我需要控制器中表单的dom引用。我已经在我的应用程序中使用了jQuery。所以可以使用
获取表单的引用$(selecter) or angular.element($(selecter))
但在这两种情况下,它都会搜索完整的文档以获取元素的引用。而不是我需要在视图的上下文中搜索元素,这将提高性能。
我已经看到在角度中使用$元素。但后来我发现不建议使用$ element,并且可能会在新版本的angular中折旧。当我试图在控制器中获取$元素时,我收到了一个错误。所以我猜它已经贬值了。
那么在控制器的视图上下文中获取dom元素的最佳方法是什么?
答案 0 :(得分:1)
正如米卡莱所说。要使用任何元素进行操作,你必须创建指令(这是有角度的方式..)
举个例子:
<input type="text" select-all value="test" />
指令
app.directive('selectAll', function () {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.on('click', function() {
this.select();
});
};
});
该指令只选择文本元素中的所有文本。
<强>更新强>
我为你创建了plunker。这是你要的吗?
更新2
我刚才意识到,我们根本不需要eval。我不知道,为什么我把它放在那里。 Eval也可能是有害的。
看看这个plunker。
答案 1 :(得分:0)
建议不要在控制器的视图上下文中使用dom元素。要访问dom,您应该创建角度指令。