typescript - Hovered mini profile in Angular 2 -


i have list of users. when move mouse on each user, want show mini profile.

@directive({   selector: '[mini-profile-directive]',   host: {     '(mouseenter)': 'onmouseenter($event)'   } }) export class miniprofiledirective {   private mouseenter = new eventemitter();    onmouseenter($event) {} } 

when use, use this:

<div *ngfor="let user of users" mini-profile-directive><div> 

however, want show something, directive cannot show something.


so create component.

@component({   selector: '[mini-profile-component]',   host: {     '(mouseenter)': 'onmouseenter($event)'   },   template: `` }) export class miniprofilecomponent {   private mouseenter = new eventemitter();    onmouseenter($event) {     // here won't run!   } } 

then use this, wrong.

<div *ngfor="let user of users" mini-profile-component></div> 

a way comes mind having both miniprofiledirective , miniprofilecomponent

<div *ngfor="let user of users" mini-profile-directive><div> <mini-profile-component></mini-profile-component> 

inside of miniprofiledirective, use service control show/hide of miniprofilecomponent.

any better ways? thanks

update

example hovered profile component

origin

as alternative of host binding can use listen method of renderer class this:

constructor(elementref: elementref, renderer: renderer) {   renderer.listen(elementref.nativeelement, 'mouseenter', (e) => this.onmouseenter(e)) } 

see working plunkr http://plnkr.co/edit/opghqkwlfj2b46dgduzh?p=preview


Popular posts from this blog

php - How should I create my API for mobile applications (Needs Authentication) -

5 Reasons to Blog Anonymously (and 5 Reasons Not To)

Google AdWords and AdSense - A Dynamic Small Business Marketing Duo