如何在Angular中使用ng-click函数设置最后一个表行中的输入焦点

时间:2016-10-09 11:09:22

标签: javascript angularjs

我正在构建一个任务管理应用程序,我想要所需的行为:

  • 当用户点击“添加任务”时,会在表格中添加一个新行(已完成),并关注最新/最后一个表格行内的输入。

我不希望它在页面加载时聚焦,我只是希望它在按下ng键单击按钮时聚焦。我不知道如何实现这一目标,任何人都能提供任何帮助吗? $ broadcast和$ on会在这里有用吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我不知道你是如何向表添加新行的。我是Angular的新手,所以我想不出一种适用于ng-click的方法,因为它会调用controller中的函数,但不建议在controller中进行DOM操作,所以我的建议是为“添加任务”按钮创建一个新的自定义指令,并在该指令中为元素的链接函数添加一个click侦听器,这将向表中添加一个新行并将输入元素聚焦在其中。类似下面的内容

.directive('myDir', function () {
    return {
         restrict: 'A',
         scope: true,
         link: function (scope, element, attrs) {

            function functionToBeCalled () {
                console.log("It worked!");
            }

            element.on('click', functionToBeCalled);
        }
    };
});

您可以在functionToBeCalled函数中添加自己的DOM操作代码。 这段代码只是给你一个想法的基本参考。

感到懒惰,所以无耻地复制了来自this answerdirective代码。