Используя ng-if внутри ng-repeat?
Я работаю над угловым приложением. Я попытался использовать ng-if и переключиться внутрь НГ-повторить но не удалось. У меня есть такие данные, как:
**[{"_id":"52fb84fac6b93c152d8b4569",
"post_id":"52fb84fac6b93c152d8b4567",
"user_id":"52df9ab5c6b93c8e2a8b4567",
"type":"hoot",},
{"_id":"52fb798cc6b93c74298b4568",
"post_id":"52fb798cc6b93c74298b4567",
"user_id":"52df9ab5c6b93c8e2a8b4567",
"type":"story",},
{"_id":"52fb7977c6b93c5c2c8b456b",
"post_id":"52fb7977c6b93c5c2c8b456a",
"user_id":"52df9ab5c6b93c8e2a8b4567",
"type":"article",},**
$scope.комментарии = данные, упомянутые выше
как и в HTML :
<div ng-repeat = "data in comments">
<div ng-if="hoot == data.type">
//differnt template with hoot data
</div>
<div ng-if="story == data.type">
//differnt template with story data
</div>
<div ng-if="article == data.type">
//differnt template with article data
</div>
</div>
Как я могу достичь этой штукой в угловой?
3 ответа:
пытаются окружить
strings
(hoot
,story
,article
) с цитатами'
:<div ng-repeat = "data in comments"> <div ng-if="data.type == 'hoot' "> //different template with hoot data </div> <div ng-if="data.type == 'story' "> //different template with story data </div> <div ng-if="data.type == 'article' "> //different template with article data </div> </div>
этот тоже заслуживает внимания
<div ng-repeat="post in posts" ng-if="post.type=='article'"> <h1>{{post.title}}</h1> </div>
Я предлагаю переместить все шаблоны в отдельные файлы, и не делайте спагетти внутри повтора
посмотри здесь:
html:
<div ng-repeat = "data in comments"> <div ng-include src="buildUrl(data.type)"></div> </div>
js:
var app = angular.module('plunker', []); app.controller('MainCtrl', function($scope) { $scope.comments = [ {"_id":"52fb84fac6b93c152d8b4569", "post_id":"52fb84fac6b93c152d8b4567", "user_id":"52df9ab5c6b93c8e2a8b4567", "type":"hoot"}, {"_id":"52fb798cc6b93c74298b4568", "post_id":"52fb798cc6b93c74298b4567", "user_id":"52df9ab5c6b93c8e2a8b4567", "type":"story"}, {"_id":"52fb7977c6b93c5c2c8b456b", "post_id":"52fb7977c6b93c5c2c8b456a", "user_id":"52df9ab5c6b93c8e2a8b4567", "type":"article"} ]; $scope.buildUrl = function(type) { return type + '.html'; } });