input
상자 목록이있는 새로운 Angular 2 앱이 있습니다. 사용자가 리턴 키를 누르면 input
현재 편집중인 상자 바로 뒤에 새 상자를 추가합니다 . 또는 오히려 (비동기 적으로) 모델의 배열에 새 항목을 추가하여 Angular 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);
});
}
}
});
setInterval
가능성이 가장 높은 단지를해야한다setTimeout
.