HTML5:如何使用AngularJS将焦点设置在列表中的文本输入上

前端之家收集整理的这篇文章主要介绍了HTML5:如何使用AngularJS将焦点设置在列表中的文本输入上前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用AngularJS和ng-repeat指令将一个对象数组显示为一个列表.
<li ng-repeat="cue in cues" class="form-inline">
    <input type="text" ng-model="cues[$index].text" class="input-xlarge"/>
    {{cue.isNewest}}
</li>

属性“isNewest”仅在数组的一个元素上为true.我想将键盘焦点设置在该项目的文本输入上.我怎么能用AngularJS做到这一点?

解决方法

这是另一个使用attrs的指令实现.$observe:
myApp.directive('focus',function () {
  return function (scope,element,attrs) {
    attrs.$observe('focus',function (newValue) {
      newValue === 'true' && element[0].focus();
      // or,if you don't like side effects (see @Christophe's comment):
      //if(newValue === 'true')  element[0].focus();
    });
  }
});

请注意,插值的DOM属性值(即{{cue.isNewest}})总是计算为字符串,因此将newvalue与字符串’true’而不是关键字true进行比较.

HTML:

<input type="text" ng-model="cues[$index].text" focus="{{cue.isNewest}}"
 class="input-xlarge" />{{cue.isNewest}}

fiddle还有一种方法可以切换数组中的哪个项应该具有焦点.

注意,如果你不加载jQuery,我们需要在link函数中使用element [0] .focus()(而不是element.focus())因为jqLit​​e没有focus()方法.

原文链接:https://www.f2er.com/html5/168836.html

猜你在找的HTML5相关文章