cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Berkenaan isu mencipta pembolehubah dalam arahan pautan

angular.module("myDirective",[])
    .directive("tabOne",function (){
        return{
            restrict:"E",
            replace:true,
            scope:{
                data:"=myData",
            },
            transclude:true,
            template:' <p ng-hide="show">'+
            '<p ng-repeat="x in data">'+
                '{{x}}'+
    '</p>'+
    '</p>',
            link:function(scope,elem,attr){
                scope.show=true;
               elem.find("p").on("click",function(){
                    scope.show=!scope.show;
                    console.log(scope.show);
                });
            }
        }
    })

Seperti yang ditunjukkan dalam soalan, saya kini membuat rancangan pembolehubah dalam pautan Rancangan ini digunakan dalam templat untuk menunjukkan sama ada hide atau scope.show sentiasa dipaparkan benar?
Saya tidak tahu di mana masalahnya, sila beri saya nasihat! Terima kasih
Tetapi console.log (scope.show) berubah secara serentak

phpcn_u1582phpcn_u15822756 hari yang lalu686

membalas semua(2)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-15 17:05:33

    Ubah:

    elem.find("p").on("click",function(){
        scope.show=!scope.show;
        scope.$apply();
    });

    Tambahan:

    Baca dokumentasi

    Dokumen mengatakan bahawa jika ia adalah operasi segerak dalam controller, atau operasi tak segerak melalui $http, $timeout, $interval, scope.$apply() dilaksanakan secara automatik (Angular membantu anda lakukan). Tetapi anda jelas tidak memenuhi syarat di sini yang anda gunakan DOM API, jadi anda perlu memaparkan dan memanggil scope.$apply()

    secara manual.

    Alamat dokumen: skop

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-15 17:05:33

    Terima kasih atas nasihat selepas membaca dokumentasi, banyak kaedah saya sendiri akan mencetuskan permohonan dan operasi settimeout tidak akan mencetuskan permohonan

    balas
    0
  • Batalbalas