Я новичок в AngularJs. У меня есть два объекта JSON, один из них - "продукты", а другой - "пользователи". У меня есть два ng-repeat, для отображения продукта и внутри, чтобы получить имя пользователя продукта. У меня есть другой цикл. Во внутреннем цикле мне нужно проверить userId из продукта JSON и сравнить его с userId в объекте User, и если совпадения отображают его в теге P. Мой код выглядит следующим образом:
<div class="col-md-4" ng-repeat="(key,value) in products" style="padding-top: 1.4%; padding-bottom: 1.4%;" >
<img style="height:300px;width:350px" ng-src="{{products[key].image}}"></img>
<div ng-repeat="(userkey,value) in User">
<p ng-if="User[userkey].userId == products[key].user">{{{User[userkey].name}}</p>
</div>
</div>
Я пробовал так, но он отображает всех пользователей в теге p. Может кто-нибудь помочь с этим
<div class="col-md-4" ng-repeat="product in products" style="padding-top: 1.4%; padding-bottom: 1.4%;" >
<img style="height:300px;width:350px" ng-src="{{product.image}}"></img>
<div ng-repeat="(oneUser in User">
<p ng-show="oneUser.userId == product.user">{{{oneUser.name}}</p>
</div>
</div>
Вы можете сделать это с помощью фильтра:
oneUser in User | filter: {userId:product.user}:true
РЕДАКТИРОВАТЬ
То, как вы должны это делать, это фильтры, вы можете использовать ng-show/ng-hide, но вы по-прежнему показываете этот элемент как комментарий, а с фильтром - нет. Поэтому используйте это для больших данных.
Это то, что сработало для меня -
<div ng-repeat="p in products">
<div ng-repeat="u in users">
<p ng-show="u.userId == p.user">
{{u.name}}
</p>
</div>
</div>
products
иUser
.