Grails taglibs import assets
La siguiente técnica sirve para que el taglib obligue a importar sus assets y para evitar que se importe repetido el mismo asset. Se recomienda meter todos los js/css en un archivo de manifiesto, para que el framework genere un bundle en producción.
class TestTagLib {
static namespace = 't'
def assetsTest = {
if (pageScope["${this.class.name}_assets"]) {
throwTagError("Ya se han importado los assets del taglib ${this.class.name}")
}
pageScope["${this.class.name}_assets"] = true
out << asset.javascript(src: "bootstrap-colorpicker/js/bootstrap-colorpicker.js")
out << asset.stylesheet(src: "bootstrap-colorpicker/css/bootstrap-colorpicker.css")
}
def test = {attrs, body ->
if (!pageScope["${this.class.name}_assets"]) {
throwTagError("No se ha importado los assets del taglib ${this.class.name}")
}
out << "Hello world"
}
}