<p ng-repeat="x in inputContent track by $index">
<p ng-if="x.hint" ng-click="toEdit({{$index}})" class="lc-hint">{{x.placeholder}}</p>
<textarea ng-if="!x.readable" ng-model="x.value"></textarea>
</p>
Multiple such structures are generated by ng-repeat. The textarea is hidden at first. Click lc-hint to make the textarea appear. How to automatically gain focus.
The setfocus command in the official documentation does not seem to work. Help
光陰似箭催人老,日月如移越少年。
There is something wrong with your code:
ng-click="toEdit({{$index}})"
should be written as
ng-click="toEdit($index)"
Why not use the native one and add the id of textarea to abc;
document.getElementById("abc").focus();
If you input in the console, it is best to add a delay. The focus of textarea can only be triggered when the current page is in focus state. After typing, click anywhere on the page immediately to trigger:
setTimeout(function(){document.getElementById("abc").focus();},1000);
The setfocus you encounter does not take effect, it may be because the current page is not in focus.
Put it in your code environment, add textarea with id, the prefix I wrote is suibianla_{whatever}:
<textarea id="suibianla_{{ $index }}" ng-if="!x.readable" ng-model="x.value"></textarea>
$scope.toEdit = function(index){
//你的業(yè)務代碼
inputContent[index].readable = true; //我猜你是這樣寫的,在這里后邊加一句
document.getElementById("suibianla_" + index).focus();
}