Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Checkbox <;离子复选框>;使用它显示/隐藏div时导致闪烁_Checkbox_Ionic Framework_Show Hide_Angular Ngmodel - Fatal编程技术网

Checkbox <;离子复选框>;使用它显示/隐藏div时导致闪烁

Checkbox <;离子复选框>;使用它显示/隐藏div时导致闪烁,checkbox,ionic-framework,show-hide,angular-ngmodel,Checkbox,Ionic Framework,Show Hide,Angular Ngmodel,我有一个场景,我正在使用为其指定模型值,根据复选框是否选中,自动获取为其指定的真值和假值 <ion-checkbox class="checkbox-balanced clear-border" ng-model="DeliveryObj.shippingChecked">Same as billing address</ion-checkbox> <div class="list list-inset" ng-if="!DeliveryObj.shippingCh

我有一个场景,我正在使用为其指定模型值,根据复选框是否选中,自动获取为其指定的真值和假值

<ion-checkbox class="checkbox-balanced clear-border" ng-model="DeliveryObj.shippingChecked">Same as billing address</ion-checkbox>
<div class="list list-inset" ng-if="!DeliveryObj.shippingChecked"></div>

我猜这两种解决方案之间的区别在于,如果正在更改dom树,则
ng。所以,也许它看起来会有所不同,特别是当你的列表很长的时候


尝试使用
ng show
再次执行此操作,
ng show
仅更改可见性的样式,而不删除或向dom树添加元素。

其中一种方法是使用
ng clope
,如下所示:

NgClope指令用于阻止AngularJS html模板 从浏览器在其原始(未编译)状态下短暂显示 窗体,而您的应用程序正在加载。使用此指令可避免 html模板显示引起的不希望出现的闪烁效果


虽然它在chrome上运行得很好,但在android和ios上存在问题,ng hide工作正常,但仍然想知道为什么会出现闪烁,在尝试向dom添加元素时,为什么会切换模型值?知道吗?有没有可能在你的布尔变量变为真之前?我指的是应用程序中某个地方的某种默认值。如果你真的担心这一点,也许你应该构建一个代码笔,在干净的情况下重新创建它,这样人们可以帮助你调试它。好吧,它在桌面浏览器中工作正常,没有任何问题,但在android和iphone浏览器中检测到,所以我认为代码笔/小提琴无法复制它(
 <ion-checkbox class="checkbox-balanced clear-border" ng-change="showShippingDetails(DeliveryObj.shippingChecked)" ng-model="DeliveryObj.shippingChecked"><label>Same as billing address </label></ion-checkbox>
 <div class="list list-inset" id="shippingDetails" hidden></div>
// Functionality            : Shows/hides the shipping address div
// Params                   : showDetails - true/false 
$scope.showShippingDetails  = function(showDetails){

   if(showDetails){
         // $("#shippingDetails").hide();
         document.getElementById("shippingDetails").style.display = "none";
   }
   else{
         // $("#shippingDetails").show();
         document.getElementById("shippingDetails").style.display = "block";
   }
}