1 votos

Pasar argumentos entre widgets con plantillas Mixedin - CMV Builder

Estoy intentando manipular un widget personalizado (Tabla) que he construido. Primero inicializo el widget en la clase viewer.js y lo adjunto al panel 'sidebarBottom' en el visor. Dado que el widget 'Find' es un titlePane y se adjunta a la barra lateral, necesito una manera de pasar atributos entre cada widget.

si inicializo el widget personalizado en la clase viewer.js puedo adjuntarlo con éxito al panel inferior, pero no sé cómo pasarle argumentos dojo/dijit a través del widget Find. He intentado utilizar dojo.byId() sin éxito.

Si inicializo mi widget personalizado desde dentro del widget Find utilizando el segundo bloque de código, puedo establecer() y obtener() los atributos con éxito. Sin embargo, no puedo adjuntar el widget al panel "sidebarBottom" definido en la declaración viewer.js.

Sección de widget de tabla en Viewer.js:

  table: {
            include: true,
            id: 'table',
            type: 'contentPane',
            path: 'gis/dijit/Table',
            placeAt: 'bottom',
            options: { 
                map: true,
            }
        },   

Init del widget de tabla en la clase de widget 'Find'

        var fOut = query.url + "/" + query.layerIds;
        var table;
            table = new Table({
                include: true,
                open: true,
                FeatureInput: fOut,
                map: this.map,
                //placeAt: this.bottom,
            });
           alert(table.get('FeatureInput'));
           alert(table.get('open'));

0voto

Dave Konopka Puntos 133

Esta es la misma respuesta que di en el cmv gitter chat .

Probablemente lo más sencillo es utilizar topic.publish y topic.subscribe de dojo. Así es como varios de los widgets del núcleo de cmv se comunican entre sí. El caso más sencillo que encontrarás es cuando otro widget (como el localizador) envía información al widget Growler. Para tener el concepto de cómo funcionan los temas, lee los docs de dojo y examina cómo se comunican esos dos widgets.

Además, tengo un widget de búsqueda (algo así como find pero diferente) que se comunica con un widget de tabla de atributos de forma muy parecida a la que describes. Puedes encontrarlos en mi repo aquí: https://github.com/tmcgee/cmv-widgets . La comunicación entre estos widgets es un poco compleja pero también se basa en el tema publish/subscribe.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X