控制器视图上下文中的 dom 元素

The dom element in context of view from the controller

本文关键字:dom 元素 视图 上下文 控制器      更新时间:2023-09-26

我有一个角度视图的表单。在窗体上的按钮中,我添加了一个事件,用于使用 $http 向服务器发送请求。在将请求发送到服务器之前,我需要使用 jQuery Validate 验证表单。

为了验证表单,我需要控制器中表单的 dom 引用。我的应用程序中已经有了jQuery。所以可以使用以下命令获取表单的引用

$(selecter) or angular.element($(selecter))

但在这两种情况下,它都会搜索完整的文档以获取元素的引用。取而代之的是,我需要在视图上下文中搜索元素,这将提高性能。

我见过$element在角度中的使用。但后来我看到不建议使用 $element,并且在新版本的 angular 中可能会贬值。当我尝试在控制器内获取$element时,我遇到了错误。所以我想它已经贬值了。

那么从控制器获取视图上下文中的 dom 元素的最佳方法是什么?

正如Mikalai所说。要使用任何元素进行操作,您必须创建指令(这是角度方式..(

举个例子:

  • 网页<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。我不知道,为什么我首先把它放在那里。评估也可能是有害的。

看看这个笨蛋。

不建议在控制器的视图上下文中使用 dom 元素。要访问 dom,您应该创建角度指令。