2011-07-27 10 views

Respuesta

1

Creo que es una bestia diferente con una solución diferente. Escribí una extensión backbone.js para enlazar elementos de formulario a campos Backbone.Model. Perdona el coffeescript pero hago lo siguiente normalmente.

class FooView extends MyView 

    tag: "div" 

    modelBindings: 

    "change form input.address" : "address" 
    "change form input.name" : "name" 
    "change form input.email" : "email" 

    render: -> 

    $(@el).html """ 
     <form> 
     <input class="address"/> 
     <input class="name"/> 
     <input class="email"/> 
     </form> 
    """ 

    super 

    @ 


# Instantiate the view 
view = new FooView 
    model: new Backbone.Model 

$("body").html(view.el) 

La implementación del código de enlace es

class MyView extends Backbone.View 

    render: -> 

    if @model != null 
     # Iterate through all bindings 
     for selector, field of @modelBindings 
     do (selector, field) => 
      console.log "binding #{selector} to #{field}" 
      # When the model changes update the form 
      # elements 
      @model.bind "change:#{field}", (model, val)=> 
      console.log "model[#{field}] => #{selector}" 
      @$(selector).val(val) 

      # When the form changes update the model 
      [event, selector...] = selector.split(" ") 
      selector = selector.join(" ") 
      @$(selector).bind event, (ev)=> 
      console.log "form[#{selector}] => #{field}" 
      data = {} 
      data[field] = @$(ev.target).val() 
      @model.set data 

      # Set the initial value of the form 
      # elements 
      @$(selector).val(@model.get(field)) 

    super 

    @ 

escribí un pequeño artículo en el blog sobre esto aquí.

http://xtargets.com/2011/06/11/binding-model-attributes-to-form-elements-with-backbone-js/

4

No está familiarizado con la forma en Rails crea formas, pero he creado un Backbone biblioteca de formularios que pueden hacer lo que estás buscando. Se escribe un esquema simple formulario y va a generar las formas para usted:

https://github.com/powmedia/backbone-forms

0

escribí plugin de jQuery que le permite vincular el objeto JSON a la forma. Sé que no es exactamente lo que querías. Incluso estaba pensando en extenderlo para construir el html a partir de la definición del objeto en primer lugar, pero decidí que podría ser un poco difícil crear un complemento que fuera lo suficientemente flexible. De todos modos here es el código con alguna explicación. Todavía está en versión alfa pero funciona. Por fin funciona bien para mí: D

También puede tomar el código en el jquery plugin page

Cuestiones relacionadas