Rumah > Soal Jawab > teks badan
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
给我你的怀抱2017-05-15 17:05:33
Ubah:
elem.find("p").on("click",function(){
scope.show=!scope.show;
scope.$apply();
});
Tambahan:
Baca dokumentasi
secara manual.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 gunakanDOM API
, jadi anda perlu memaparkan dan memanggilscope.$apply()
Alamat dokumen: skop
漂亮男人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