这是我的 HTML(除其他外):
<button type="button" class="btn btn-primary ng-cloak" ng-click="ctrl.add(ctrl.userProfile.username)" ng-hide="ctrl.userProfile.added">Add</button>
上面的 HTML 扩展了这个 HTML 页面:
<html ng-app="UserPageApp">
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="css/bootstrapCSS/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/base.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/angular.js"></script>
<script src="js/base.js"></script>
<script src="js/bootstrapJS/bootstrap.min.js"></script>
<base href="/">
</head>
这是我的 base.css(以及其他一些东西):
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
问题是,当页面加载时,“添加”按钮会出现,然后在一秒钟后消失(即使 ng-hide 评估为 True。注意:这就是我所说的“闪烁”)。如果 ng-hide 评估为 True,我有没有办法根本不允许按钮显示?
编辑:当我改变class="btn btn-primary ng-cloak"
并class="btn btn-primary ng-cloaks"
使它成为我的 CSS 时:
/* add ng-cloaks */
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-cloaks {
display: none !important;
}
然后它成功不显示按钮。好像有些 JS 在加载时删除了 ng-cloak?
编辑 2:我从按钮中删除了 ng-hide,结果发现 ng-cloak 类甚至没有添加到按钮中(我在 Chromium 中使用了“检查元素”,发现 ng-cloak CSS 甚至没有已应用并且 ng-cloak 类不会出现在按钮 lass 上)。因此,AngularJS 似乎出于某种原因正在删除 ng-cloak 类(就像我之前提到的,当我将其更改为 .ng-cloaks 时,它工作得非常好)。