我有一个新的角度2应用程序与 input
框清单。当用户点击返回键,我添加一个新的 input
框后,他们当前正在编辑的立即。或者更确切地说,我(异步地)向模型中的数组中添加一个新条目,这将导致角度2在不久的将来自动生成一个新的 input
框。
如何使 input
的焦点自动转移到新添加的元素?
编辑1:
或者,我得到一个对模型对象的引用,这个模型对象导致了 DOM 的生成。从组件代码中,是否有一种方法来搜索表示特定模型对象的 DOM 元素?
编辑2:
这是我的代码,让这个工作。希望这足够冒犯到一些 Angular 2开发者,以鼓励回复: -)
app.WordComponent = ng.core
.Component({
selector: 'word-editor',
template:'<input type="text" [value]="word.word" (input)="word.update($event.target.value)" (keydown)="keydown($event)"/>',
styles:[
''
],
properties:[
'list:list',
'word:word'
]
})
.Class({
constructor:[
function() {
}
],
keydown:function(e) {
if(e.which == 13) {
var ul = e.target.parentNode.parentNode.parentNode;
var childCount = ul.childNodes.length;
this.list.addWord("").then(function(word) {
var interval = setInterval(function() {
if(childCount < ul.childNodes.length) {
ul.lastChild.querySelector('input').focus();
clearInterval(interval);
}
}, 1);
});
}
}
});