AngularJS - Chromium 中的按钮上的 ng-cloak 不起作用(闪烁仍然存在) - 由于某种原因,ng-cloak 甚至没有添加到 CSS
AngularJS - ng-cloak on button not working (flicker still exists) in Chromium - ng-cloak doesn't even get added to the CSS for some reason
这是我的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;
}
问题是,当页面加载时,"Add" 按钮出现并在一秒钟后消失(即使 ng-hide 的计算结果为 True。注意:这就是我所说的 'flicker').如果 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 class 甚至没有添加到按钮(我在 Chromium 中使用 "inspect element" 并看到ng-cloak CSS 甚至没有被应用并且 class ng-cloak 没有出现在按钮上 las)。因此,似乎 AngularJS 出于某种原因正在删除 ng-cloak class(就像我之前提到的,当我将其更改为 .ng-cloaks 时,它工作得很好)。
发现错误。虽然我没有在我的 post 中提到它,但 ctrl.userProfile.added
最初并不存在(在我的 user.js 文件中,我最初只有 self.userProfile = []
)。然后我做了一个获取请求并加载了 self.userProfile
然后变成了 self.userProfile = {'added': true}
。所以我猜 AngularJS 正在显示按钮,因为 self.userProfile.watching
最初是未定义的。
这是我的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;
}
问题是,当页面加载时,"Add" 按钮出现并在一秒钟后消失(即使 ng-hide 的计算结果为 True。注意:这就是我所说的 'flicker').如果 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 class 甚至没有添加到按钮(我在 Chromium 中使用 "inspect element" 并看到ng-cloak CSS 甚至没有被应用并且 class ng-cloak 没有出现在按钮上 las)。因此,似乎 AngularJS 出于某种原因正在删除 ng-cloak class(就像我之前提到的,当我将其更改为 .ng-cloaks 时,它工作得很好)。
发现错误。虽然我没有在我的 post 中提到它,但 ctrl.userProfile.added
最初并不存在(在我的 user.js 文件中,我最初只有 self.userProfile = []
)。然后我做了一个获取请求并加载了 self.userProfile
然后变成了 self.userProfile = {'added': true}
。所以我猜 AngularJS 正在显示按钮,因为 self.userProfile.watching
最初是未定义的。