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";
}
}