ng-if или ng-show останавливает передачу массива в ng-repeat

У меня есть угловая адресная книга. Он содержит список имен и названий на одной стороне и полную биографию на другой. Одной из особенностей био является то, что вы можете сделать кого-то основным контактом. Установка этого флажка выделяет его в списке. Я делаю это, обновляя объект контакта с помощью логического значения, а затем используя сначала 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
                    }

Я пытался сократить количество кода, который я здесь показываю, но если кто-то захочет, чтобы я публиковал больше или действительно создал код, я могу это сделать.

1 ответ

Все хвалят Е. Абракову. Ng-Class - лучшее решение. Благодарю.

Другие вопросы по тегам