Как вызвать функцию в <ng-template> пусть объявление переменной Angular 4 - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть функция, которая возвращает цвет, цвет текста и значение даты из функции машинописи в качестве объекта.который я хочу хранить в переменной let.я могу напрямую использовать функцию, но не хочу повторять вызов функции.

Это дает мне ошибку типа "год" не найден

<kendo-grid-column-group title="{{year}}" [headerStyle]="{'text-align': 'center'}" width="380">
        <ul *ngFor="let month of keys(); let i = index">
          <li>
            <kendo-grid-column field="{{month}}" class="no-padding" title="{{month}}" [filterable]="false" [sortable]="false" width="35">
              <ng-template kendoGridCellTemplate let-dataItem let-color="getColor(year,i,dataItem.ca)">
                <span class="whole-cell" [ngStyle]="{'background-color': color.color,'color': color.textColor,'font-weight':'bold','height':'25px','vertical-align': 'middle'}">
                  <label>{{color.Date}}</label>
                </span>
              </ng-template>
            </kendo-grid-column>
          </li>
        </ul>
</kendo-grid-column-group>

1 Ответ

0 голосов
/ 11 сентября 2018

Вам необходимо передать объект «содержание: этот».

Шаблон:

<ng-template let-color="getColor()" #loading>
                <span class="whole-cell" [ngStyle]="{'background-color': color.color,'color': color.textColor,'font-weight':'bold','height':'25px','vertical-align': 'middle'}">
                  <label>{{color.Date}}</label>
                </span>
              </ng-template>

<ng-container *ngTemplateOutlet="loading;context:this"></ng-container>

Компонент:

getColor() {
    return {
      color: 'red',
      textColor: 'blue',
      Date: 'hi'
    }
  }
...