Tiempo lectura: 0 min. 54 s.

Parametrized string # Ejemplo Siviglia-js

Parametrized string, ejemplo de uso con Siviglia-js

El siguiente código veremos los path:

  • Paths.
  • Contextos de los paths.
  • PathResolver (resolvedor de path).
  • HTMLParse + contexto.
<html>
<head>
    <script src="/node_modules/jquery/dist/jquery.js"></script>
    <script src="../../../Siviglia.js"></script>
    <script src="../../../SivigliaStore.js"></script>
    <script src="../../../Model.js"></script>
    <script src="../../../SivigliaTypes.js"></script>
<script>
        var contextStack = new Siviglia.Path.ContextStack();
        var obj = {
            paises: {"espana": ["Madrid","Sevilla","Barcelona"],
                    "francia": ["Paris","asdas","asdasdas"]
            }
        };
        var obj2 = {
            h:"espana"
        };

        // 2 variables de contexto, asociado # al obj1, y ! al obj2
        var plainCtx = new Siviglia.Path.BaseObjectContext(obj, "#", contextStack);
        var plainCtx2 = new Siviglia.Path.BaseObjectContext(obj2, "!", contextStack);

        // Una vez construido lo anterior, ya podemos preguntar por paths
        // BaseCursos -> un "iterador" de directorios, para saber como moverse entre directorios.
        // Como resuelve parametrized string el contexto [%nombre_objeto%]
        var ps = new Siviglia.Path.ParametrizableString("Una ciudad de [%!h%] es [%#paises/{%!h%}/2%]",contextStack);
        ps.addListener("CHANGE",null,function(evName,params){
            console.dir(params);
        });
        ps.parse();

        // A los 3 segundos, el contexto de h es francia, por lo que cambia parametrized string dinámicamente.
        setTimeout(function(){
            obj2.h="francia";
        },3000);
</script>
</head>
<body>

<script>
    var parser=new Siviglia.UI.HTMLParser();
    parser.parse($(document.body));
</script>
</body>
</html>

En resumen, lo más importante de este ejemplo es quedarnos con la idea de:

  • pathResolver puede resolver parametrized string del contexto [%nombre_objeto%]
Última modificación: March 11, 2020