Angularjs 聚焦一个新的ng重复元素
使用Angular,我希望用户能够输入到主Angular,然后(如果条目不存在)将新的“action”推送到“actions[module.id].actions”数组中,从而使用ng repeat创建一个新输入,然后我希望将重点放在该新输入上 我正在使用“addActionAction()”将新值添加到数组中,然后将注意力集中在新创建的输入上,但是,似乎直到“addActionAction()”完成运行之后,才真正创建输入,因此在我希望将注意力集中到该输入时,该输入不存在。有办法解决这个问题吗Angularjs 聚焦一个新的ng重复元素,angularjs,ng-repeat,angularjs-ng-change,Angularjs,Ng Repeat,Angularjs Ng Change,使用Angular,我希望用户能够输入到主Angular,然后(如果条目不存在)将新的“action”推送到“actions[module.id].actions”数组中,从而使用ng repeat创建一个新输入,然后我希望将重点放在该新输入上 我正在使用“addActionAction()”将新值添加到数组中,然后将注意力集中在新创建的输入上,但是,似乎直到“addActionAction()”完成运行之后,才真正创建输入,因此在我希望将注意力集中到该输入时,该输入不存在。有办法解决这个问题吗
<div ng-repeat="(key, action) in actions[module.id].actions" >
<span class="action-profile">{A{action}A}</span>
<input id="action-input-{A{module.id}A}-{A{key}A}"type="text" ng-model="action">
</div>
<!-- main input-->
<input type="text" ng-model="$parent.newActionText" ng-change="addActionAction()">
将焦点调用包装在
$timeout()
中使用ng focus='$last'
@entre-ng focus似乎对被聚焦的元素做出反应,而不是聚焦在元素上。它将焦点属性添加到将有$last=truewrap焦点调用的元素中$timeout()
使用ng focus='$last'
@entre-ng focus似乎对被聚焦的元素做出反应,而不是聚焦在元素上。它将focus属性添加到元素中,元素的$last=true
$scope.addActionAction= function()
{
if($scope.actions[$scope.selectedId].actions.indexOf($scope.newActionText) == -1)
{
$scope.actions[$scope.selectedId].actions.push($scope.newActionText);
$scope.newActionText="";
document.getElementById("action-input-"+$scope.selectedId+"-"+String(parseInt($scope.actions[$scope.selectedId].actions.length)-1)).focus();
}
};