Drab: remote controlled frontend framework for Phoenix

True. I would like to be compatible with “normal” Phoenix tempate, so I would rather do foo=<%=@bar%> for attribute and foo$=<%=@bar%> for the property.

So far I’ve found the following ways to deal with nodes:

Helper functions and changeset

Something like below, query for the selector, do a changes on the specific node(s) and push the modified node:

node = query(socket, "#selector")
node = set_property(node, "property", false)
node = set_attribute(node, "other", "blah")
push socket, node

Bound property to assign in JS

<script>
  node.some_property = <%= @assign %>
</script>

Each time the @assign is poked from the Commander, script is re-evaluated. This must be done anyway, for other cases.

Template (Polymer styla)

<tag attribute=<%= @attribute %> property$=<%= @property %>>

This would bound the the property with the assign.