Как создать сетку карт с материалом angular?
Я пытаюсь создать сетку из трех карт в строке, используя ng-repeat. У меня есть обычный массив объектов javascript, прикрепленных к области. Следующий код создаст новую строку для каждой карты.
<div layout="row" ng-repeat='post in posts' layout-fill="" layout-align="">
<md-card>
<md-card-content>
<h2 class="md-title">{{post.title}}</h2>
<p>
{{post.summary}}
</p>
</md-card-content>
<div class="md-actions" layout="row" layout-align="end center">
<md-button>View More</md-button>
</div>
</md-card>
<br>
![введите описание изображения здесь]()
Как я могу перебирать массив и отображать карты в виде строк из трех? Я просмотрел этот пост и этот пост, но я не вижу, как они применяются к angular материал
Ответы
Ответ 1
Я создал нечто похожее на то, что вам может понадобиться. md-card
заключен в div
с layout-wrap
. После чтения динамики генерируются динамически.
Вот код:
<div class='md-padding' layout="row" layout-wrap>
<md-card style="width: 350px;" ng-repeat="user in users">
<img src="http://placehold.it/150x150" class="md-card-image" alt="user avatar">
<md-card-content>
<h2>{{user}}</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</md-card-content>
<div class="md-actions" layout="row" layout-align="end center">
<md-button>Save</md-button>
<md-button>View</md-button>
</div>
</md-card>
</div>
Ширина карт можно настроить с помощью встроенного стиля, надеясь, что это поможет.
Ответ 2
Мне просто нужно это; здесь более комплексное решение, только с использованием функций компоновки, для 3 столбцов:
<md-content class="md-padding" layout="row" layout-wrap>
<div flex="33" ng-repeat="i in [1,2,3,4,5,6,7]">
<md-card>
// ...
</md-card>
</div>
</md-content>
Карта должна быть обернута внутри div с правильным размером, чтобы сохранить поля под контролем и избежать переполнения.
Ответ 3
Чтобы компилировать материал /angular, вы должны использовать flex attr для md-карты.
Flex attr даст вам пропорциональную ширину относительно своего родителя.
<div class='md-padding' layout="row" layout-wrap>
<md-card flex="40" flex-sm="80" ng-repeat="user in users">
<img src="http://placehold.it/150x150" class="md-card-image" alt="user avatar">
<md-card-content>
<h2>{{user}}</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
</md-card-content>
<div class="md-actions" layout="row" layout-align="end center">
<md-button>Save</md-button>
<md-button>View</md-button>
</div>
</md-card>
</div>
В этом примере у вас будет две карты (по 40% каждая), а когда экран изменится на -sm, карты будут на 80%.