angularjs – 在输入焦点上选择文本

前端之家收集整理的这篇文章主要介绍了angularjs – 在输入焦点上选择文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个文本输入。当输入接收焦点时,我想选择输入中的文本。

使用jQuery我会这样做:

<input type="text" value="test" />
$("input[type=text]").click(function() {
    $(this).select();
    // would select "test" in this example
});

搜索过周围尝试找到Angular的方式,但我发现的大多数示例是处理一个指令,正在观察一个模态属性的变化。我假设我需要一个指令,正在监视一个接收焦点的输入。我该怎么做?

在Angular中这样做的方法是创建一个自定义指令,为您执行自动选择。
module.directive('selectOnClick',['$window',function ($window) {
    return {
        restrict: 'A',link: function (scope,element,attrs) {
            element.on('click',function () {
                if (!$window.getSelection().toString()) {
                    // required for mobile Safari
                    this.setSelectionRange(0,this.value.length)
                }
            });
        }
    };
}]);

应用这样的指令:

<input type="text" value="test" select-on-click />

View demo

Update1:​​删除了jQuery依赖。

Update2:限制为属性

Update3:适用于移动Safari。允许选择部分文本(需要IE> 8)。

猜你在找的Angularjs相关文章