昨天,我已将Angular Js更新到最新版本1.3,但只是将焦点放在输入文本上的简单指令不再起作用。这里是coffeescript中的代码:
# activate the focus to an element
angular.module('dbManagerApp').directive 'riumFocusOn', ->
scope:
trigger: '=riumFocusOn'
link: (scope, elem, attr) ->
scope.$watch 'trigger', (value) ->
elem[0].focus() if value
调试代码,它像以前一样通过focus()方法但在网页中不会出现光标。 任何人都可以帮助我理解为什么它停止工作?看看Angular的更改日志,我还没有看到任何可能包含我的问题的点。
更新
这里是示例Plunker
我想按下"添加项目"链接,焦点将转到下面显示的输入文本。我试图将Angular更改为1.2,但仍然没有在Plunker中工作,但在我的项目中工作..
答案 0 :(得分:0)
我真的不知道你用“观看”触发器观看了什么,但是如果它只是在一个元素自动对焦的时候beeing显示你可以随时使用"自动对焦"如果它可以在<< IE10。
<input autofocus id="edit--menu__input" rium-escape-input="" ... />
答案 1 :(得分:0)
我已经用这种方式修正了指令:
app.directive('riumFocusOn', function() {
return {
link: function(scope, elem, attrs) {
var model = attrs.riumFocusOn;
scope.$watch(model, function(value) {
if (value === true) {
setTimeout(function() {
elem[0].focus();
}, 200);
}
});
}
};
});
现在它可以像以前一样正常更新到Angular 1.3