我的页面上有一些内容包含在 ng-if 中,如下所示:
<div ng-if="ShowMessgae" class="text-danger">
<p>
<strong>
Message displayed to User
</strong>
</p>
</div>
然后在我的 Angular js 控制器中我有以下内容:
function MyController($scope, $q, notifyHelper) {
openAjaxLoaderGif();
$scope.ShowMessgae = false;
MyService.getVarsFromSession().then(function (result) {
// some code removed for brevity
if(some coditional) {
$scope.ShowMessgae = true;
}
}, function (data, failReason, headers) {
notifyHelper.error("Error has occurred - try again");
})
})
.finally(function () {
closeAjaxLoaderGif();
});
};
我将 ShowMessage 的值设置为 false,并且仅在满足特定条件时才为 true。在大多数情况下,ShowMessage 将为 false。然而,这会导致当页面加载向用户显示的标记消息时短暂呈现,然后它消失(以显示我所期望的) - 是否有我做错的事情导致了这种闪烁?
发生这种情况是因为内容会一直渲染,直到 AngularJS 检测到ShowMessgae
is false
然后隐藏它。
为了在 Angular 准备好“说”是否准备好之前根本不显示内容ShowMessgae
is true
or false
你应该使用ng-cloak
。这样,直到 AngularJS“知道” 的值时,内容才会显示ShowMessgae
。然后,此时,框架已准备好显示(or not)内容,取决于值ShowMessgae
<div ng-if="ShowMessgae" class="text-danger" ng-cloak>
<p>
<strong>
Message displayed to User
</strong>
</p>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)