2016-03-22 22 views
8

Tôi có một chỉ thị như thế này -góc 2 - làm thế nào để truy cập vào chỉ thị và gọi một hàm thành viên trong đó

@Directive({ 
    selector: 'someDirective' 
}) 
export class SomeDirective{   
    constructor() {}  
    render = function() {} 
} 

và sau đó tôi đang nhập khẩu các chỉ thị

import {SomeDirective} from '../../someDirective'; 
@Page({ 
    templateUrl: '....tem.html', 
    directives: [SomeDirective] 
}) 
export class SomeComponent { 
     constructor(){} 
     ngAfterViewInit(){//want to call the render function in the directive 
} 

Trong ngAfterViewInit, tôi muốn để gọi hàm render trong chỉ thị. Cách thực hiện việc này?

Trả lời

12

Đây là cách cũ,

@Directive({ 
    selector: 'someDirective' 
}) 
export class SomeDirective{   
    constructor() {}  
    render() { 
     console.log('hi from directive'); 
    } 
} 

import {Component,ViewChild} from 'angular2/core'; 
import {SomeDirective} from '../../someDirective'; 
@Component({ 
    templateUrl: '....tem.html', 
    directives: [SomeDirective] 
}) 
export class SomeComponent { 
     @ViewChild(SomeDirective) vc:SomeDirective; 
     constructor(){} 
     ngAfterViewInit(){ 
      this.vc.render(); 
     } 
} 

cho phiên bản mới hơn của Angular2, hãy làm theo câu trả lời đưa ra ở đây

Calling function in directive

+0

Cảm ơn cho câu trả lời, tôi đã cố gắng này như bạn nói, nhưng tôi nhận được lỗi cú pháp - @ViewChild (SomeDirective) vc: SomeDirective; tại dấu hai chấm ':' của dòng. Tôi đang sử dụng Ionic 2. Tôi đã thử nhập cả hai cách ---> nhập {ViewChild} từ 'angular2/core'; và nhập {ViewChild} từ 'ionic-angular'; –

+0

Rất tiếc! Tôi không gây phiền phức. vì vậy không thể giúp bạn trong trường hợp đó. Nhưng tôi chắc chắn đây là cách ViewChild được sử dụng. – micronyks

+0

hey bạn hoàn toàn chính xác, ngoại trừ việc tôi đang viết mã trong ES6. Vì vậy, đã viết mã trong TS và transpiled nó và những thứ làm việc. Nó sẽ là tuyệt vời nếu bạn có thể cho tôi biết làm thế nào để viết giống nhau trong ES6/ES5. Cảm ơn. –

Các vấn đề liên quan