使用angular我有一组输入元素在某个用户操作后出现在dom中,即我使用ng-if
来确定它是否应该存在。我希望这些输入元素中的第一个能够获得焦点,并且选择其中的文本,用户可以轻松地更改该元素中的所有内容。
在网上搜索我看过几篇帖子说我应该使用focus
或select
方法或两者兼而有之,但我还没有达到预期效果。这是我创建的指令:
app.directive('selectMe', function() {
return function(scope, element) {
element[0].focus();
element[0].select();
};
})
here是一个傻瓜演示。谁能告诉我它为什么不起作用?
答案 0 :(得分:2)
因为当您的指令初始化时,它们的值尚未附加,因此您应该设置小$timeout
。
它可以,你可以尝试在plnkr
app.directive('selectMe', function($timeout) {
return function(scope, element) {
$timeout(function() {
var ele = element[0];
ele.focus();
ele.select();
}, 500)