2016-04-29 2 views
1

Свойство exportAs определено для компонента. Как я могу получить доступ за пределами компонента к его методу? Я попробовал этот примерпопытаться использовать exportAs в компоненте angular2

<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" ' –

ответ

2

Это не должно работать. У вас не может быть #xxx, (xxx) или любого другого типа Угловое связывание вне шаблона вашего корневого компонента (App).

Вы можете искать что-то вроде How to dynamically create bootstrap modals as Angular2 components?

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", ""); 
    } 
} 
Смежные вопросы