2012-06-12 16 views
9

Powiedzmy, że mam szablon z kilkoma elementami button. Jeśli chcę obejrzeć wydarzenie click, używam tylko pomocnika {{action}}. Ale nie mogę wymyślić sposób przekazywania innych zdarzeń, takich jak mouseEnter lub mouseLeave. Pomyślałem, aby użyć Ember.Button i jakoś to zrobić przez childViews, ale wydaje się być deprecated.Ember.js {{action}} inny niż kliknij

szablon

{{#view App.MyView}} 
    <button {{action "btnClicked"}}>button1</button> 
    <button {{action "btnClicked"}}>button2</button> 
{{/view}} 

js

App.MyView = Em.View.extend({ 
    btnClicked: function(e){ 
     alert('btnClicked'); 
    }, 
    btnMouseEnter: function(e){ 
     alert('btnMouseEnter'); // how to call this? 
    } 
});​ 

wiem, że mogę używać {{action "btnMouseEnter" on="mouseEnter"}} ale potem stracić funkcjonalność kliknięcia. Czy muszę zawijać każdy przycisk w swoim własnym Ember.View? Jeśli tak, dlaczego Ember.Button jest przestarzałe?

Edit:

Myślę, że powinieneś być w stanie mieć wiele zdarzeń wywoła taką samą action

<button {{action "myAction" on="click mouseEnter mouseLeave"}}>button</button> 

I wdrożone to zachowanie w moim fork i here jest jsFiddle wykazując go pracy

Edytuj:

Jeśli ktoś jest również zainteresowany tą funkcjonalnością, dyskusja będzie trwała here.

Odpowiedz

9

Bardzo dobre pytanie IMHO.

Jedynym sposobem znalazłem jest to jedna: http://jsfiddle.net/Sly7/Zvred/

Myślę, że to rodzaj opakowania, więc nie wiem, to jest dobra odpowiedź ...

6

Ilia ...

Ember zespół zdecydował, że dopuszczenie wielu pomocników akcji do elementu takiego jak Button nie było najlepszą praktyką. Ich zaleceniem jest użycie widoku podobnego do sly7_7. Przejrzyj ten raport emisyjnej na Github:

https://github.com/emberjs/ember.js/issues/569

+1

+1 dla łącza. Jaka szkoda, że ​​nie wyjaśnili, dlaczego nie zdecydowali się na wsparcie wielu działań. –

+0

Zaktualizowałem moje pytanie. Czy mogę mieć opinię? –

+0

Myślę, że będziesz mieć odpowiedzi w kwestii, którą opublikowałeś;) –

Powiązane problemy