我需要使用Angular的一些代码帮助。我对此很陌生(第一篇文章),所以我会尝试解释我能做的最好的事情。简而言之,我想在电子邮件是空字符串时向元素ID添加一个类。联系人有一系列电子邮件。
主要的问题是,在页面呈现信息之后,元素ID似乎没有像我想象的那样添加类。
如果我在google chrome上进入控制台并执行angular.element(' id')。addClass(' class')它会起作用,并且会将该类添加到元素中但是当我把它放在这个功能上时,它不会在页面渲染后显示。
任何帮助都会很棒!谢谢。
例如:
$scope.ContactResults.forEach(function (item, index) {
item.resourceID = index;
if (item.email == '') {
angular.element('#Contacts_email_externalLink-' + index).addClass('hide-icon');
}
});
答案 0 :(得分:1)
您应该使用ng-class
结合$scope
参数来完成这样的事情。不要直接用angular.element()
操纵DOM:
<a href="mailto:who@ever.knows"
ng-class="{ 'hide-icon' : hideIcon }">Email external link</a>
$scope.hideIcon = false;
$scope.ContactResults.forEach(function (item, index) {
item.resourceID = index;
if (item.email.length === 0) {
$scope.hideIcon = true;
} else {
$scope.hideIcon = false;
}
});
答案 1 :(得分:0)
如果不是ids元素,该怎么办?使用ng-class
<form>
<div ng-repeat="item in ContactResults">
<input type="email" ng-model="item.email">
<div id="Contacts_email_externalLink-{{$index}}"
class="some-class"
ng-class="{true:'hide-icon', false:''}[item.email.length > 0]">
</div>
</form>