tutorial traductor redes react network meaning backbonejs backbone backbone.js backbone-events

backbone.js - traductor - ¿Cómo encontrar el Id del modelo correspondiente al ítem cliqueado?



backbone vs react (2)

Esta es otra forma (más nueva de la versión principal de la red troncal) de hacer esto: (veo que @Sander muestra el método model.get en sus comentarios)

var AppointmentView = Backbone.View.extend({ events: { ''click'' : ''alertTitle'' }, alertTitle : function(e) { // this.model.get(''id'') is what you''re looking for alert( this.model.get(''title'') ); } });

¿Cómo saber el Id del artículo que hice clic? mi código se da a continuación:

$(function() { ipl.mvc.view.openings_view = ipl.mvc.view.view_base.extend({ template: ''/assets/t/plmt/companies.tmpl.html'', ID: ''#tmpl_openings'', events: { "click #edit": "editpost" }, initialize: function() { var _this = this; _.bindAll(this, ''addOne'', ''addAll'', ''render'', ''editpost''); _this.loadTemplate(_this.template, function() { _this.model = new ipl.mvc.model.companies_model([]); _this.model.view = _this; _this.model.bind(''change'', _this.render, _this); }); } , render: function() { var _this = this jsonData = _this.model.toJSON(); _.each(jsonData, function(model) { $(_this.ID).tmpl(model).appendTo(_this.el); return _this; }); } , editpost: function(e) { console.log("EDIT CLICKED"); e.preventDefault(); var ele = $(e.target); console.log(ele); _this.model = new ipl.mvc.collection.companies_collection([]); var id = _this.model.get("id"); alert(id); } }); });

y plantilla

<a href="!/editpost/${id}" data-id="${id}"><button id="edit" ><img src="/assets/img/pencil.png" /></button></a>

Necesito una identificación para usar en la función de edición, pero no obtengo ${id} de la plantilla, y sigo esos pasos y no los obtuve. cómo obtener el ${id} del elemento cliqueado de la plantilla?


en realidad lo que necesitas es esto:

  1. ha establecido el id de datos en el elemento html en la plantilla

  2. Agregaste un método para ser ejecutado en el evento correcto (editPost)

  3. en ese método editPost puedes hacer esto:

    editPost: function(e){ e.preventDefault(); var id = $(e.currentTarget).data("id"); var item = this.collection.get(id); }

observación noté que tu código tiene demasiadas etiquetas de cierre, por lo que no se ejecutará aquí, y también lo noté en tu edición de publicación. Intenta _ esto pero nunca declaras _ esto. deberías haber tenido var _this = this; en ese método.

observación 2 No entiendo por qué incluso necesita una identificación de datos en este ejemplo, hay dos formas de representar una vista, ya sea que la vista tenga una colección vinculada a ella o que tenga un modelo. Al vincular una colección a una vista, de alguna manera podría necesitar obtener la identificación correcta del elemento al que se hizo clic para encontrar el modelo correcto en su colección.

pero en su ejemplo, su vista tiene un modelo vinculado a ella, por lo que solo tiene esa ID 1, que puede obtener llamando a this.model.get(''id''); Creo que todo el ejemplo de código anterior, se copia de otro ejemplo donde usan una colección en la vista, ya que tanto su representación como el uso de la propiedad de identificación de datos lo sugieren.