2014-11-05 3 views
2

Возможно ли, что в Elm запускается несколько входных ручек с одним обработчиком событий? Например, предположим, что у меня есть следующие:Несколько входов в Вяз?

button 
    [ type' "button", on "click" getAnything go.handle (\_ -> searchInput) ] 
    [ text "Go" ] 

В этом случае, нажимает на кнопку Go будет посылать значения в go ввода. Я хочу отправить другое значение другому входу того же события клика (например, вход go2).

Есть ли способ сказать, комбинировать входы или иметь один входной вентилятор для нескольких сигналов?

ответ

1

У вас может быть один входной вентилятор на несколько сигналов. Я не знаю, как сочетать входы.

Фаннинг в основном означает, что вы отправляете два разных значения на один и тот же вход, обертывая их в кортеж. Затем разворачивание вашего ввода на несколько сигналов приведет к чему-то вроде:

signalUnzip : Signal (this,that) -> (Signal this, Signal that) 
signalUnzip signal = (fst <~ signal, snd <~ signal) 

go : Input (String,Int) 
go = input ("",0) 

(goFanoutPart1,goFanoutPart2) = signalUnzip go.signal 
-- goFanoutPart1 : Signal String, goFanoutPart2 : Signal Int 
+0

Спасибо за ваш ответ. Я решил немного решить проблему, создав еще один сигнал на одном и том же входе и просто объединив его с исходным сигналом. –

+0

Если вам интересно, вы можете проверить кросс-пост здесь: http://www.reddit.com/r/elm/comments/2lbpk9/multiple_event_handlers/ –

+0

@ Андрей может ответить на ваш собственный вопрос здесь и включить какой-то код? После прочтения перекрестной почты я просто больше смущен тем, что вы хотели точно ... – Apanatshka

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