manuales_desarrollo

Manuales de desarrollo de YeboYebo


Project maintained by yeboyebo Hosted on GitHub Pages — Theme by mattgraham

Ficheros de controlador

Los ficheros de controlador son el fichero dinámico (.ctrl.js) y el fichero estático (.yaml.js)

Estos ficheros define el comportamiento del reductor de la vista, exportando dos valores:

NombreVista.ctrl.yaml

El reductor de la vista puede estar total o parcialmente definido de forma estática en un fichero YAML. Las claves de esta estructura YAML son:

Sobrecarga del controlador

Los pasos para sobrecargar el controlador son:

  1. Si no existe ya, crear la vista a sobrecargar en la extensión (carpeta)
  2. Crear nuevos ficheros js / yaml en la extensión. Podemos copiar la estructura del js de aquí: ```js import { applyBunch, shortcutsState, shortcutsBunch } from ‘core/lib’ import data from ‘./Checkout.ctrl.yaml’

export const state = parent => ({ …parent, …shortcutsState(data.shortcuts), …data.state })

export const bunch = parent => { const parentConShortCuts = { …parent, …shortcutsBunch(data.shortcuts) } return { …parentConShortCuts, …applyBunch(data.bunch, parentConShortCuts), } }

3. Publicarlos en el index.js de la vista
```js
// export { default as ui } from './Checkout.ui'
export { bunch, state } from './Checkout.ctrl'
// export { default as style } from './Checkout.style'
  1. Incluimos la vista en nuestro index.ts de la extensión. Lo mejor es copiar las líneas correspondientes del index.ts de la extensión base.

Sobrecarga del bunch en ficheros estáticos En el caso de sobrecargar una clave del bunch ya definida en extensiones base, podemos hacerlo de tres formas:

La sintaxis para hacer esto es la del ejemplo:

{
  "shortcuts": [],
  "state": {
    "filtroVisible": true
  },
  "bunch": {
    "onCatalogoFilterChanged": {
      "patch": "override",
      "grapes": [
        {
          "_type": "set",
          "path": "catalogo.filter",
          "value": {
            "payloadPath": "value"
          }
        },
        {
          "_type": "grape",
          "name": "getCatalogo"
        }
      ]
    }
  }
}

Más