javascript - infinito - bucles en la plantilla js de subrayado
ejemplos de do while en javascript (1)
Probablemente quieras hacer dos cosas:
Ajuste los datos que proporciona a la plantilla:
$(this.el).html(this.template({ action: this.model.toJSON() }));
Ajuste la parte interna de la plantilla para usar
acs.label
lugar de lalabel
:<a class="btn"><%= acs.label %></a>
Demostración: http://jsfiddle.net/ambiguous/xczBy/
Pensándolo bien, creo que deberías estar trabajando con una colección en lugar de un único modelo. Te gustaría agregar esto:
var ActionCollection = Backbone.Collection.extend({
model: Action
});
Y luego ajusta el render
para usar this.collection
:
$(this.el).html(this.template({
actions: this.collection.toJSON()
}));
Y luego comienza las cosas de esta manera:
var actions = new ActionCollection(acs);
var actionView = new ActionView({collection: actions});
Y finalmente, consulte las actions
en la plantilla:
<% _.each(actions, function(acs) { %>
Demostración: http://jsfiddle.net/ambiguous/6VeXk/
Esto coincidiría mejor con los modelos basados en clave / valor de Backbone.
De acuerdo chicos, así que tengo esta matriz de valores de par de claves que estoy usando como mi modelo:
var acs = [{''label'':''input box''},{''label'':''text area''}];
el resto del código es el siguiente
var Action = Backbone.Model.extend({});
var action = new Action(acs);
var ActionView = Backbone.View.extend({
tagName:"li",
template: _.template($(''#actions-template'').html()),
events:{
"click":"makeInput"
},
render:function(){
$(this.el).html(this.template(this.model.toJSON()));
$(".hero-unit>ul").append(this.el);
return this;
},
makeInput:function(){
alert("im in");
}
});
var actionView = new ActionView({model:action});
actionView.render();
La pregunta es con respecto a la vista. ¿Cómo puedo recorrer el modelo que paso si esta es la vista que quiero tener?
<script type="text/template" id="actions-template">
<% _.each(action, function(acs) { %>
<a class="btn"><%= label %></a>
<% }); %>
</script>
Hay algo mal con mi punto de vista y el ciclo, creo. ¿Alguna pista? ¡Gracias!