<p class="tab">
<p ng-transclude class="click" ></p>
<i class="iconfont" ng-show="show">X</i>
<i class="iconfont" ng-show="show1">Y</i>
<p ng-hide="show">
<p ng-repeat="x in data" ng-click="choiceme(x)">
{{x}}
</p>
</p>
</p>
link:function(scope,elem,attr){
scope.show=true;
scope.show1=false;
scope.choiceme=function (i){
console.log(scope.show,scope.show1);
scope.show1=!scope.show1;
scope.show =!scope.show;
console.log(scope.show,scope.show1);
};
elem.find("p").on("click",function(){{
scope.show=!scope.show;
console.log(scope.show,scope.show1);
scope.$apply();
});
}
Masalah semasa adalah sangat pelik Peristiwa ng-klik akan dicetuskan secara automatik Walau bagaimanapun, keadaan scope.show dalam choiceme() memang telah berubah, tetapi ia tidak disegerakkan kepada Dom isu ini
Melihat kod anda, apabila anda mengklik teg
p
, kedua-duascope.choiceme
danelem.find("p").on("click"
harus dicetuskan, bukan?Adakah ini munasabah?