繁体   English   中英

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

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

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

输入栏位:

<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 ,并且您的原始指令可以更新以侦听焦点,而不是加载。


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

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

例...

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

十分简单

希望能有所帮助!

尝试这个。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM