2012-06-12 2 views
9

Допустим, у меня есть шаблон с несколькими элементами button. Если я хочу посмотреть событие click, я просто использую помощник {{action}}. Но я не могу найти способ передачи других событий, таких как mouseEnter или mouseLeave. Я бы подумал использовать Ember.Button и как-то сделать это через childViews, но это похоже на deprecated.Ember.js {{action}} кроме щелчка

шаблон

{{#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? 
    } 
});​ 

Я знаю, что могу использовать {{action "btnMouseEnter" on="mouseEnter"}}, но тогда я потеряю функциональность мыши. Нужно ли обертывать каждую кнопку в своем собственном Ember.View? Если да, то почему Ember.Button устарел?

Edit:

Я думаю, что вы должны быть в состоянии иметь несколько событий вызывают тот же action

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

Я реализовал это поведение в моих fork и here является jsFiddle демонстрируя его работать

Редактировать:

если кому-то интересна эта функциональность, обсуждение продолжается here.

ответ

9

Очень хороший вопрос ИМХО.

Единственный способ я нашел это один: http://jsfiddle.net/Sly7/Zvred/

Я думаю, что это вид упаковки, так что не уверен, что это хороший ответ ...

6

Илья ...

Тлеющей команда решила, что использование нескольких помощников действий на элементе типа Button не является лучшей практикой. Их рекомендация - использовать представление, подобное sly7_7. Пожалуйста, ознакомьтесь с отчетом об итогах выпуска на Github:

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

+1

+1 за ссылку. Как жаль, что они не объяснили, почему они решили не реализовывать поддержку нескольких действий. –

+0

Я обновил свой вопрос. Могу ли я получить мнение? –

+0

Я думаю, что у вас будут ответы в выпуске, который вы опубликовали;) –

Смежные вопросы