viernes, octubre 22, 2010

CouchApp IV: creando funciones show con templates HTML

necesitamos mostrar una entidad en su propia pagina, para eso vamos a necesitar un template html con los valores del documento almacenado en la base de datos, un template es una buena herramienta para eso, veamos como hacerlo en nuestra couchapp


primero creamos la funcion show, esta funcion es llamada para mostrar un documento en algun formato, en nuestro caso html


# generamos la funcion show
couchapp generate show dato
# la editamos con un editor de texto
vim shows/dato.js

en un principio vamos a ver este contenido



function(doc, req) {  
  
}

reemplazamos por algo parecido a esto



function(doc, req) {
    if (doc !== null && doc.name) {
        var ddoc = this,
            Mustache = require("vendor/couchapp/lib/mustache"),
            path = require("vendor/couchapp/lib/path").init(req),
            assetPath = path.asset();

        provides("html", function() {
            return Mustache.to_html(ddoc.templates.dato, {
                assetPath: assetPath,
                doc: doc
            });
        });
    }
    else {
        return "not found";
    }
}

en el codigo controlamos que tenemos un documento, sino mostramos "not found",
tambien creamos algunos objetos que nos ayudan y finalmente renderizamos el template pasandole algunos valores que seran usados dentro del template.


mi template esta en templates/dato.html (por eso ddoc.templates.dato) y contiene un template mustache, mira la documentacion de mustache para mas informacion sobre el formato


la url par acceder a esta funcion es [database]/_design/[app]/_show/[showname]/[docid] un ejemplo podria ser http://localhost:5984/datos/_design/datos/_show/dato/6bd97648d74961996c8f0d42b2005761

2 comentarios:

Javi dijo...

Hola Mariano,

Me dirijo a usted porque recién estoy empezando en MPI y tengo una duda que no consigo resolver, a ver si me podría ayudar.

Muchas gracias de antemano.

saludos
-javi-

luismarianoguerra dijo...

@Javi: cual sera el problema?

Seguidores

Archivo del Blog