【发布时间】:2016-06-07 15:30:20
【问题描述】:
我有一个 Angular 通讯录。它的一侧是姓名和头衔列表,另一侧是完整的简历。简历的一个特点是您可以让某人成为主要联系人。选中该框会在列表中突出显示它。我通过使用布尔值更新联系人对象然后首先使用 ng-if 来做到这一点,但现在我正在尝试使用 ng-show。它的工作原理是,如果我尝试添加一个新联系人,它将被添加到联系人数组中,但不会显示在列表中。这是由于与我使用 ng-if/ng-show 的方式存在某种冲突。我尝试将 $apply() 添加到组合中,但它无法正常工作。我想知道是否有人遇到过这个问题或有更好的解决方案。
这是中继器:
<div class="contactsDetails">
<div class="col-md-3 col-md-offset-2 contactList">
<table class="table table-striped">
<tr>
<th>Name</th>
<th>Title</th>
</tr>
<tr ng-repeat="contact in contacts | orderBy: 'name' | filter: query" ng-click="viewContact(contact)">
<td ng-show="contact.mainContact === true" style="font-weight: bold; background: aliceblue">{{contact.name}}</td>
<td ng-show="contact.mainContact === true" style="font-weight: bold; background: aliceblue">{{contact.title}}</td>
<td ng-show="contact.mainContact === false">{{contact.name}}</td>
<td ng-show="contact.mainContact === false">{{contact.title}}</td>
</tr>
</table>
</div>
这是一个示例联系人对象:
{
name: "John Doe",
title: "Lawyer",
company: "Corona",
email: "john.doe@corona.com",
phone: "123-456-7890",
address: "1234 Market Street, Anytown, MA, 02143",
mainContact: false
}
我试图减少我在这里显示的代码量,但如果有人希望我发布更多或实际创建一个 codepen,我可以这样做。
【问题讨论】:
-
我认为在这种情况下使用 ng-class 会更好
-
是的,我也想过 ng-class,但我不确定如何使用 contact.mainContact === 主动表达式来实现它。它在这个时期窒息。
-
如何过滤搜索结果? |过滤器:查询
-
ng-class="{'some-class':contact.mainContact}"
-
@erolkaya84 使用这个:
标签: javascript angularjs angular-ng-if angularjs-ng-show