angular.js - Berkenaan isu mencipta pembolehubah dalam arahan pautan
phpcn_u1582
phpcn_u1582 2017-05-15 17:03:33
0
2
692
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_u1582
phpcn_u1582

membalas semua(2)
给我你的怀抱

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

漂亮男人

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan