如何使用 angular material 创建卡片网格?
how do i create a grid of cards with angular material?
我正在尝试使用 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>
如何遍历我的数组并以三行显示卡片?我看了this post and this post but I do not see how they apply to angular material
我创建了一些与您可能想要的类似的东西。 md-card
包含在 div
中,其中包含 layout-wrap
。读取后动态生成div
这是代码:
<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>
可以使用内联样式调整卡片宽度,希望对您有所帮助。
要编译到 material/angular,您必须对 md-card 使用 flex attr。
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%。
我正需要这个;这是一个更全面的解决方案,仅使用布局功能,用于 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>
卡片 must be wrapped 放在尺寸正确的 div 中,以控制边距并避免溢出。
您可以为此使用 class="grid-container"
。
例如这样的代码片段,
<div class="grid-container">
<mat-grid-list cols="2" rowHeight="350px">
<mat-grid-tile [colspan]="1" [rowspan]="1">
<mat-card class="mat-elevation-z8 card-prop"> CARD 1
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="1" [rowspan]="2">
<mat-card class="mat-elevation-z8 card-prop"> CARD 2
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="1" [rowspan]="1">
<mat-card class="mat-elevation-z8 card-prop"> CARD 3
</mat-card>
</mat-grid-tile>
</mat-grid-list>
</div>
将产生与此类似的输出。
我正在尝试使用 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>
如何遍历我的数组并以三行显示卡片?我看了this post and this post but I do not see how they apply to angular material
我创建了一些与您可能想要的类似的东西。 md-card
包含在 div
中,其中包含 layout-wrap
。读取后动态生成div
这是代码:
<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>
可以使用内联样式调整卡片宽度,希望对您有所帮助。
要编译到 material/angular,您必须对 md-card 使用 flex attr。 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%。
我正需要这个;这是一个更全面的解决方案,仅使用布局功能,用于 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>
卡片 must be wrapped 放在尺寸正确的 div 中,以控制边距并避免溢出。
您可以为此使用 class="grid-container"
。
例如这样的代码片段,
<div class="grid-container">
<mat-grid-list cols="2" rowHeight="350px">
<mat-grid-tile [colspan]="1" [rowspan]="1">
<mat-card class="mat-elevation-z8 card-prop"> CARD 1
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="1" [rowspan]="2">
<mat-card class="mat-elevation-z8 card-prop"> CARD 2
</mat-card>
</mat-grid-tile>
<mat-grid-tile [colspan]="1" [rowspan]="1">
<mat-card class="mat-elevation-z8 card-prop"> CARD 3
</mat-card>
</mat-grid-tile>
</mat-grid-list>
</div>
将产生与此类似的输出。