Javascript 指令不再工作,传递到Angular 1.3
昨天,我已经将Angular Js更新到了最新版本1.3,但是一个简单的指令仅仅将焦点放在输入文本上不再起作用。下面是coffeescript中的代码:Javascript 指令不再工作,传递到Angular 1.3,javascript,angularjs,coffeescript,Javascript,Angularjs,Coffeescript,昨天,我已经将Angular Js更新到了最新版本1.3,但是一个简单的指令仅仅将焦点放在输入文本上不再起作用。下面是coffeescript中的代码: # activate the focus to an element angular.module('dbManagerApp').directive 'riumFocusOn', -> scope: trigger: '=riumFocusOn' link: (scope, elem, attr) -&
# 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的变更日志,我没有看到任何一点可以包括我的问题
更新
这里是一个例子
我希望在按下Add item链接后,焦点转到下面显示的输入文本。我试图将Angular更改为1.2,但在Plunker中仍然不起作用,但在我的项目中起作用了。我真的不知道在“触发器”上使用$watch时你在看什么,但是如果只是为了在显示元素时自动对焦,如果在
<input autofocus id="edit--menu__input" rium-escape-input="" ... />
我以这种方式修正了指令:
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和以前一样可以正常工作,显示HTML以及如何使用该指令。也许你可以做一个有问题的演示?我认为你的问题与其他问题有关,我试图复制这个,但它对我有效我添加了示例,也许问题不是新版本的角,而是别的什么……考虑到我有多个列表添加项目,比如我页面上的Paskor和其他输入文本的例子。页面很复杂。我试图添加自动对焦,但仍然无法工作。。。谢谢你能试着把它和ng if结合起来而不是ng show吗?