Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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
Javascript AngularJS将值加载到ng if指令时的计时_Javascript_Angularjs_Performance_User Interface - Fatal编程技术网

Javascript AngularJS将值加载到ng if指令时的计时

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

在加载有关元素的详细信息时,我在元素上使用了一些ng if指令。这样,当元素值未定义时,我可以向用户显示加载程序图形。当定义该值时,ng if等于false并隐藏自身

接下来,另一个ng if等于true,它查找被实例化为某个值的值

<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>