Я новичок в AngularJS и собираю довольно базовое доказательство концепции для своего босса. Это списки для проката автомобилей, а список результатов в главной области просмотра, заполненный через внешний JSON, и панель фильтров сбоку. Вы можете увидеть Plunker я создал здесь:Ссылка на область охвата детей в фильтрах (AngularJS)
http://plnkr.co/lNJNYagMC2rszbSOF95k
Я был в состоянии успешно ссылаться на дочерние объекты/значения в моем ngRepeat:
<article data-ng-repeat="result in results | filter:search" class="result">
<h3>{{result.carType.name}}, {{result.carDetails.doors}} door, £{{result.price.value}} - {{ result.company.name }}</h3>
<ul class="result-features">
<li>{{result.carDetails.hireDuration}} day hire</li>
<li data-ng-show="result.carDetails.airCon">Air conditioning</li>
<li data-ng-show="result.carDetails.unlimitedMileage">Unlimited Mileage</li>
<li data-ng-show="result.carDetails.theftProtection">Theft Protection</li>
</ul>
</article>
... однако, я до сих пор не удалось получить доступ к дочерним объектам второго уровня в моем поисковом фильтре. Например, когда я фильтрую «тип автомобиля» (см. Ниже), я бы хотел использовать «search.carType.name» как мой ngModel, чтобы быть как можно более конкретным, но это не так. Работа не работает, хотя использование «search.carType» отлично работает. Может ли кто-нибудь посоветовать, что я делаю неправильно?
<h4>Car type:</h4>
Compact <input type="checkbox" data-ng-model="search.carType" ng-true-value="Compact" ng-false-value="" /><br>
Intermediate <input type="checkbox" data-ng-model="search.carType" ng-true-value="Intermediate" ng-false-value="" /><br>
Premium <input type="checkbox" data-ng-model="search.carType" ng-true-value="Premium" ng-false-value="" /><br>
вы должны использовать фильтр: search.carType.name –