Как связать класс в md-grid-tile?

У меня есть модель как:

 tiles = [
    {text: 'One', cols: 1, rows: 1 , class: 'red-hours'}];

И я попытался отобразить блок с классом

<md-grid-tile
    *ngFor="let tile of tiles"
    [colspan]="tile.cols"
    [rowspan]="tile.rows"
    [style.background]="tile.color">
    [class]="tile.class"
    {{tile.text}}
  </md-grid-tile>

Также как вставить пользовательский контент в каждое поле?


person Daniel    schedule 31.07.2017    source источник


Ответы (2)


Для этого можно использовать привязку атрибутов. В моем примере я устанавливаю только класс. Вы можете изменить это, чтобы также установить другие свойства

app.component.html:

<div   *ngFor="let tile of tiles" >
   <span  [attr.class] = "tile.class"> {{tile.text}}</span>
</div>

app.component.ts:

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
   styles: ['.red {color: red};']
})


export class AppComponent {

  tiles = [
    {text: 'One', class: 'red'}];
}
person SailajaPalakodeti    schedule 31.07.2017
comment
Спасибо, не могли бы вы объяснить мне, как стилизовать эту сетку с помощью собственного css? Теперь, когда я вставил ‹div›‹div›, он отображается встроенным. Не как блок - person Daniel; 31.07.2017
comment
Вы можете определить свои собственные стили для div в декораторе стилей. В вашем ts-файле: @Component({ selector: 'app-root', templateUrl: './app.component.html', styles: ['.yourownstyle {display: block};'] }) - person SailajaPalakodeti; 31.07.2017
comment
возможно, вы можете проверить это: stackoverflow.com/questions/ 37535181/styling-a-md-grid-list .tileContainer {display:block; ширина:100%; высота: 100 пикселей;} - person SailajaPalakodeti; 31.07.2017
comment
Хорошо, спасибо, а как установить высоту по умолчанию для поля? Кроме полей заголовка? - person Daniel; 31.07.2017

Вместо привязки атрибутов рассмотрите возможность использования NgClass. Этот плункер показывает несколько различных вариантов, которые у вас есть:

https://plnkr.co/edit/ePQGMYdKi2bStpMuqoUr?p=preview

<md-grid-list cols="2" rowHeight="2:1">
  <md-grid-tile>1</md-grid-tile>
  <md-grid-tile [class.red-tile]="true">2</md-grid-tile>
  <md-grid-tile ngClass="red-tile">3</md-grid-tile>
  <md-grid-tile [ngClass]="'red-tile'">4</md-grid-tile>
</md-grid-list>
person Will Howell    schedule 31.07.2017