2016-04-29 78 views
1

是为组件定义的exportAs属性。 如何访问该组件的外部方法? 我试过了这个例子尝试使用angular2组件中的exportAs

<my-app #my="myApp"> 
loading... 
</my-app> 


<button (click)="my.displayMessage()" class="ui button"> 
    Display popup for message element 
</button> 

这里组件类

import {Component} from 'angular2/core' 

@Component({ 
selector: 'my-app', 
providers: [], 
template: ` 
    <div> 
    <h2>Hello {{name}}</h2> 

    </div> 
    `, 
    directives: [], 
    exportAs: "myApp" 
}) 
export class App { 
    constructor() { 
    this.name = 'Angular2' 
    } 

    displayMessage():void { 
    console.log('called from component') 
    } 
} 
+0

这应该工作。问题是什么? –

+0

看不到日志。没有错误显示 – Antonio

+1

为什么你需要'exportAs'?你可以通过编写'#my'而不是'#my =“myApp”' –

回答

1

EXPORTAS用于指示,请参阅:http://plnkr.co/edit/IlLtBY7Ic9yKiRIpjukf?p=preview

@Directive({ 
    selector: "div", 
    exportAs: "myDiv" 
}) 
class MyDiv { 

    constructor(private element: ElementRef, private renderer: Renderer) { 
    } 

    toUpper() { 
    return this.renderer.setElementStyle(this.element.nativeElement, "text-transform", "uppercase"); 
    } 

    toLower() { 
    return this.renderer.setElementStyle(this.element.nativeElement, "text-transform", "lowercase"); 
    } 

    reset() { 
    return this.renderer.setElementStyle(this.element.nativeElement, "text-transform", ""); 
    } 
}