cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Bagaimana untuk mendapatkan fokus secara automatik selepas memaparkan textarea dalam angularjs

<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>

Berbilang struktur sedemikian dijana oleh ng-repeat Area teks disembunyikan pada mulanya Klik lc-hint untuk membuat kawasan teks muncul secara automatik.

Arahan setfocus dalam dokumentasi rasmi nampaknya tidak berfungsi. Bantu

大家讲道理大家讲道理2837 hari yang lalu658

membalas semua(1)saya akan balas

  • 大家讲道理

    大家讲道理2017-05-15 17:08:42

    Ada masalah dengan kod anda:

    ng-click="toEdit({{$index}})"

    hendaklah ditulis sebagai

    ng-click="toEdit($index)"

    Kenapa tidak gunakan yang asli dan tambahkan id textarea ke abc;

    document.getElementById("abc").focus();

    Jika anda memasukkan dalam konsol, sebaiknya tambahkan kelewatan. Fokus textarea hanya boleh dicetuskan apabila halaman semasa berada dalam keadaan fokus. Klik mana-mana sahaja pada halaman selepas menaip untuk mencetuskan:

    setTimeout(function(){document.getElementById("abc").focus();},1000);

    Fokus set yang anda hadapi tidak berkuat kuasa, mungkin kerana halaman semasa tidak berada dalam fokus.

    Letakkannya ke dalam persekitaran kod anda, tambah textarea dengan id, awalan yang saya tulis ialah suibianla_{whatever}:

    <textarea id="suibianla_{{ $index }}" ng-if="!x.readable" ng-model="x.value"></textarea>
    $scope.toEdit = function(index){
        //你的业务代码
        inputContent[index].readable = true;    //我猜你是这样写的,在这里后边加一句
        document.getElementById("suibianla_" + index).focus();
    }

    balas
    0
  • Batalbalas