Estoy tratando de construir un contacto simple editor de aplicación en Backbone.js y he corrido en un poco de un problema que no sé cómo resolver el problema de porque no estoy familiarizado con Backbone.js sin embargo.

Tengo un Modelo Contact y ese elemento tiene un campo ProductLineID (cada Contacto tiene una Línea de Productos que está asociado). En mostrar el editor de este Contacto me gustaría mostrar una lista desplegable con los posibles ProductLine opciones y lo han programado para el valor actual. ¿Cómo puedo hacer que en Backbone.js?

Sé cómo hacerlo en knockout.js con el enlace de datos:

<select id="ProductLineID" name="ProductLineID"
        data-bind="options: productLineOptions, 
        optionsValue: 'ID', 
        optionsText: 'Name', 
        value: ProductLineID, 
        optionsCaption: 'All'">
</select>

En este ejemplo productLineOptions es un objeto JSON que ya se han cargado en la página.

Que iba a conseguir precisamente lo que quiero, pero no sé cómo hacer el equivalente en Backbone.js.

Me puede dar más código de mi ejemplo real, pero este parece que es un poco de un ejemplo trivial y no requiere código específico.

¿Conseguirlo?? ¿Cómo te las arreglas para mostrar Default Selected Value yo.e value:ProductLineID ??

OriginalEl autor samandmoore | 2011-08-12

2 Comentarios

  1. 13

    Algo como la siguiente funcionaría si usted utiliza el subrayado plantillas:

    <select id="ProductLineID" name="ProductLineID">
        <option value="">--select a product line--</option>
        <% _(productLineOptions).each(function(pl) { %>
          <option value="<%= pl.ID %>"><%= pl.Name %></option>
        <% }); %>
    </select>

    Y, a continuación, usted sólo tiene que asegurarse de que usted pasó en el productLineOptions objeto en la plantilla del contexto.

    hay una manera de combinar esto con el construido en la representación de una vista en la columna vertebral?
    Columna vertebral del builtin la representación de vista de no hacer nada, literalmente. Así que usted podría hacer algo como: (1) poner lo anterior en una plantilla (2) en su render llamada a la función de la plantilla con el contexto correcto render: function() { this.template({ productLineOptions: productLineOptions}); return this; }
    Tengo otro problema cuando he añadido el atributo ‘seleccionado’ en la plantilla, pero siempre el primero, incluso si la otra opción era el conjunto seleccionado.

    OriginalEl autor satchmorun

  2. 4

    Backbone.js no hacer de enlace de datos fuera de la caja, como Knockout. Deja ese aspecto hasta que el desarrollador no obstante lo desean. La forma básica es establecer los detectores de eventos para los cambios.

    Si quieres hacer knock-out de estilo de enlace de datos, hay un proyecto que puede apoyar lo que usted necesita.

    https://github.com/derickbailey/backbone.modelbinding

    Entiendo que la columna vertebral no proporcionar el mismo tipo de datos en línea-se unen a la funcionalidad, pero ¿hay alguna forma sugerida para lograr lo mismo mediante columna vertebral? Probablemente voy a dar la modelbinding plugin de un intento, pero para mí eso no es una verdadera «columna vertebral» de la forma de cumplimiento de la misma.

    OriginalEl autor Edward M Smith

Dejar respuesta

Please enter your comment!
Please enter your name here