2016-03-02 8 views
6

@Component dekoratörünün host özelliğini kullanarak bileşen DOM öğesine bazı nitelikler ve dinleyiciler ekleyen aşağıdaki basit örnek bileşeni oluşturdum. Benim durumumda [ngClass] hiçbir etkisi yoktur. Birisi neden ve nasıl tamir edeceğini biliyor mu?ngClass bileşen dekoratörünün mülkiyet özelliğinde çalışmıyor

import {Injector, Component} from "angular2/core"; 
import {NgClass} from "angular2/common"; 
import {SelectionService} from "../selection-service" 

@Component({ 
    selector: 'my-component', 
    template: `<div>inner template</div>`, 
    host: { 
    'style': 'background-color: yellow', // works 
    '[ngClass]': "{'selected': isSelected}", // does not work 
    '(mouseover)': 'mouseOver($event)', // works 
    '(mouseleave)': 'mouseLeave($event)' // works 
    }, 
    directives: [NgClass] 
}) 
export class MyComponent { 
    private isSelected = false; 

    constructor(private selectionService:SelectionService) { 
    this.selectionService.select$.subscribe((sel:Selection) => { 
     this.isSelected = sel; // has no effect on ngClass 
    }); 
    } 

    mouseOver($event) { 
    console.log('mouseOver works'); 
    } 

    mouseLeave($event) { 
    console.log('mouseLeave works'); 
    } 
} 

Angular 2.0.0-beta.7 kullanıyorum.

cevap

13

ngClass yönergedir ve ana makine bağlayıcılarında kullanılamaz. Sunucu bağlamaları sadece mülkiyet '[propName]':'expr'

  • nitelik '[attr.attrName]':'expr'
  • olay (event)="someFunction(event);otherExpr",
  • tarzı bağlayıcı [style.width]="booleanExpr"
  • sınıf [class.className]="booleanExpr"

    • destekler. expr boşlukla ayrılmış sınıflar Cevabınız için
  • +1

    Teşekkür olan bir dizidir

  • sınıf [class]="expr". Benim özel durumumda 'ngClass' ekledim [class.selected] = "isSelected" ', hangi çalışır. – thinkh

  • +0

    'ngClass', çoğunlukla geçiş yapmak istediğiniz sınıf adları dinamik olduğunda (ebeveyn veya benzeri tarafından iletildiğinde) diğer durumlarda mevcut ciltleme ifadelerinin düzgün çalışması gerektiğinde gereklidir. –

    +0

    Ev sahibi özelliği hakkında ayrıntılı bir açıklama (sözdizimi ve kullanımı) nereden bulabilirim? Angular.io'da API dokümanında neredeyse hiçbir şey yoktur. – user1643352