jquery/backbone/mustache/json renderizando html como cadena de texto

1 minuto de lectura

avatar de usuario
Alex

Estoy muy cansado y sé que he visto esto antes, pero Google no está ayudando. Estoy creando un tema de WP de una sola página. Los datos son solo los datos de la API JSON de wordpress y felizmente he usado backbone en algunos proyectos ahora, pero esta vez no funciona bien… Está haciendo esto (mostrando etiquetas html en lugar de… bueno, usándolas):

ingrese la descripción de la imagen aquí

aquí está el código de renderizado:

this.template="<div class="post-list">{{#posts}}<article><h2>{{title}}</h2><span class="postcontent">{{content}}</span></article>{{/posts}}</div>";

            if(this.model.get("rawdata").posts!=undefined && this.model.get("rawdata").posts.length>0)
            {
                var posts = [];
                for(i=0;i<this.model.get("rawdata").posts.length;i++)
                {
                    posts[i] = new PostModel(this.model.get("rawdata").posts[i]);
                }
                this.postCollection = new PostCollection(posts);
                this.htm = Mustache.render(this.template,this.model.get("rawdata"));
                this.$el.empty().html(this.htm);
                log(this.htm)           
            }
            else
            {
                //handle no-data result error
            }

Intente poner & antes del nombre de la variable en la plantilla

{{& posts}}

o

{{& title}}

todo está en el documentación

  • ¡bien!… nunca había visto eso antes gran consejo… ¡Puedo irme a la cama ahora!… gracias

    – Alex

    10 mayo 2012 a las 21:02

Otra opción es usar bigotes triples:

{{{title}}}

Está en el documentación también. Esta opción funciona en nustache también.

¿Ha sido útil esta solución?