2017-01-25 2 views
1

Я пытаюсь сделать что-то, что звучит просто, но я не нахожу примеров, которые отвечают моим потребностям. У меня есть простой компонент, который отображает ajax spinner, но я хочу разрешить пользователям передавать класс или несколько классов (разделенных пробелом) в качестве входных параметров для компонента и иметь шаблон представления компонентов, добавляющий классы в тег img в шаблон. Вот мой компонент:Angular2 Установить класс CSS для компонента Значение переменной

import { Component, OnInit, Input } from '@angular/core'; 

@Component({ 
    moduleId: module.id, 
    selector: 'loading', 
    templateUrl: 'loading.html', 
    inputs: ['imgClass'] 

}) 

export class LoadingComponent { 
    @Input() imgClass: string; 
} 

Вот шаблон вид:

<img [ngClass]="{ imgClass : true}" src="./Content/img/loading_spinner.gif" /> 

Вот как я хочу использовать его:

<div class="row" *ngIf="isLoading"> 
     <div class="col-xs-4"></div> 
     <div class="col-xs-4 no-pad"><loading [imgClass]="center-block"></loading></div> 
     <div class="col-xs-4"></div> 
    </div> 

Так я хочу центральный блок должен быть добавлен к тегу img через компонент загрузки, но он, похоже, не работает.

Когда приложение загружает разметку это: enter image description here

Это не получает значение переменной imgClass это добавление буквального «imgClass» как класс.

+0

Попробуйте использовать [класс] = «imgClass» –

ответ

3

Изменение шаблона вида:

<img class="{{imgClass}}" src="./Content/img/loading_spinner.gif" /> 

Это лучше подходит для ваших нужд.

+0

Когда я попробовать это решение я получить cobolstinks

+0

Хорошо, моя проблема с моей реализацией вашего решения была, когда я использовал его я не имел одиночные кавычки вокруг моего имени класса. Я изменил на: и его работа. Благодаря! – cobolstinks

2

Просто

<img [ngClass]="imgClass" 

ngClass поддерживает объект, строка [], и строка в качестве параметра

class="{{...}}" 

вызвал проблемы на мобильный Safare некоторое время назад, но от того, что я помню, это было зафиксировано в polyfill.

Смежные вопросы