Javascript AngularJS将值加载到ng if指令时的计时
在加载有关元素的详细信息时,我在元素上使用了一些ng if指令。这样,当元素值未定义时,我可以向用户显示加载程序图形。当定义该值时,ng if等于false并隐藏自身 接下来,另一个ng if等于true,它查找被实例化为某个值的值Javascript AngularJS将值加载到ng if指令时的计时,javascript,angularjs,performance,user-interface,Javascript,Angularjs,Performance,User Interface,在加载有关元素的详细信息时,我在元素上使用了一些ng if指令。这样,当元素值未定义时,我可以向用户显示加载程序图形。当定义该值时,ng if等于false并隐藏自身 接下来,另一个ng if等于true,它查找被实例化为某个值的值 <span ng-if="signboard.activeSlideshowId && signboard.activeSlideshowId!=0 && signboard.activeSlideshowId!='failed
<span ng-if="signboard.activeSlideshowId && signboard.activeSlideshowId!=0 && signboard.activeSlideshowId!='failed' && signboard.activeSlideshowName!='failed'"><a href="#/slideshows/{{ signboard.activeSlideshowId }}">{{ signboard.activeSlideshowName }}</a></span>
<span ng-if="signboard.activeSlideshowId==undefined"><i class="fa fa-spin fa-spinner"></i></span>
<span ng-if="signboard.activeSlideshowId=='failed' || signboard.activeSlideshowName=='failed'" class="text-warning">Failed</span>
<span ng-if="signboard.activeSlideshowId==0">No Active Slideshow</span>
失败
没有活动的幻灯片放映
填充此ng if中的值需要一段时间,在几个明显的时刻留下空白。我只能认为ng if将这些新元素添加到dom中,并且只有在下面的$scope内部运行时,$apply()才会在UI中更新这些值
如何使这些过渡对用户来说更平滑,以便在显示的元素之间没有太多时间。我选择ng if而不是ng show,因为页面将包含一个项目列表,并且每列包含一个值,该值需要通过异步调用单独填充。我的印象是,一个页面上有太多的ng show/ng hide调用会严重影响性能。您可以将ngHide用于:
您是否可以提供一个plunkr或类似的工具来展示您的问题?我很难弄清楚你的确切问题。Ngshow实际上比ngif快,因为ngif向Dom添加元素并编译插入的Dom。但是使用ngshow意味着更多的观察者…使用ngHide和ngshow的问题是,我的ngshow指令在运行ngHide指令之前很久就会显示。即使ngHide指令位于ngShow之上。
<span ng-hide="::signboard.activeSlideshowId"><i class="fa fa-spin fa-spinner"></i></span>