Получение # dropdown selection в азотной структуре

Для разработки приложения я использую веб-фреймворк азота Erlang.

Должно быть, мне не хватает чего-то действительно простого, но я не могу понять, как получить выбор, сделанный элементом #dropbox. Похоже, что сообщение обратной передачи не проходит. Может быть, требуется использование функции wf: wire / 3?

Я не видел документации или примеров, демонстрирующих это. Единственные примеры, которые я могу найти, будут просто показывать значение обратной передачи, которое не дает никакой информации о том, какой вариант был выбран.


person redrover    schedule 02.02.2013    source источник


Ответы (2)


Тебе надо:

  • добавьте html_name в Dropbox,
  • добавить код для отправки формы,
  • затем на вызываемой странице (определенной в действии отправки) вы можете получить доступ к значению с помощью wf: m (dropbox_name).

есть полный пример на http://nitrogenproject.com/demos/restful

person Pascal    schedule 02.02.2013
comment
Спасибо. Это как раз то, что мне было нужно. - person redrover; 02.02.2013

Это зависит от того, как вы используете раскрывающийся список. Если вы используете его в успокаивающей «традиционной форме», но не ajaxy, тогда успокаивающие элементы, упомянутые Паскалем, - это то, что вам нужно.

Однако, если вы используете их с помощью функции обратной передачи Nitrogen, вам нужно просто определить их с помощью более стандартного идентификатора Nitrogen.

body() ->
   [
       #dropdown{id=fruit, options=[
            #option{text="Apple"},
            #option{text="Banana"},
            #option{text="Orange"}
       ]},
       #button{text="Submit",postback=do_fruit}
   ].

event(do_fruit) ->
   SelectedFruit = wf:q(fruit),
   wf:wire(#alert{text="Selected Fruit was " ++ SelectedFruit}).

Обратите внимание, что идентификатор раскрывающегося списка - fruit. #button инициирует обратную передачу со значением do_fruit, которое соответствует функции event(do_fruit), а wf:q(fruit) извлекает значение отправки с идентификатором fruit.

person chops    schedule 03.02.2013
comment
Спасибо, вот как я надеялся, что это сработает. Я не понял, что именно здесь следует использовать функцию wf: q / 1. В моем случае я теперь использую опцию обратной передачи в самом #dropdown. - person redrover; 05.02.2013
comment
Отлично. Рад слышать. Элементы RESTful великолепны, но для большей части использования азота подходят обратные передачи в сочетании с wf:q/1 и его вариантами (wf:qs, wf:mq, wf:mqs и wf:q_pl). - person chops; 05.02.2013