Angularjs:如何在页面加载时预先选择输入文本字段

Angularjs: How to pre-select input text field on page load?

本文关键字:选择 输入 字段 文本 加载 Angularjs      更新时间:2023-09-26

我的角度应用程序中有一个简单的文本输入字段,它预填充了默认值。我想在页面加载时预先选择文本。

输入字段:

<input type="text" ng-model="city" class="form-control" select-on-load />

命令:

weatherApp.directive('selectOnLoad', function () {
// Linker function
return function (scope, element, attrs) {
    element.bind('load', function () {
        this.select();
    });
};

});

但什么也没发生。

这个问题的答案表明输入元素没有load事件。但是,也许您可以在加载视图内容后附加句柄?

$scope.$on('$viewContentLoaded', function(){
    // Set a flag
  });

它不像指令那样简洁,但它是我知识中最简单的替代方案。该事件设置一个标志,元素根据该标志使用ng-focus,并且可以更新原始指令以侦听焦点,而不是加载。


编辑:我已经做了一些搜索,找不到任何更好的选择的想法。它确实感觉很像黑客,所以我欢迎任何有更好建议的人。

试试这个。

function selectOnLoadDirective() {
  return {
    link: function(scope, elem) {
      elem.focus().select();
    }
  };
}

超级晚,但您可以使用 JS 轻松完成此操作。在您的控制器内部...

例。。。

然后在您的 html id 中,您有一个带有匹配 id 的输入标签

简单易行

希望有帮助!