Configuración de StyleBook

Propiedades opcionales

A veces, una propiedad de un componente toma su valor de una expresión, que puede ser una expresión simple, como una referencia de parámetro, o una más compleja. Establecer este valor de propiedad es opcional en el componente. Puede elegir establecer el valor de la propiedad solo si la expresión devuelve un valor real; de lo contrario, puede optar por no establecer esta propiedad.

Por ejemplo, considere que una de las propiedades que desea establecer es el lbmethod (algoritmo de equilibrio de carga) de un componente cuyo tipo es ns። lbvserver. El valor de la propiedad lbmethod se toma de un valor de parámetro proporcionado por el usuario, como se muestra a continuación:

components

  -

      name: lbvserver_comp

      type: ns::lbvserver

      properties:

        name: $parameters.lb-appname + "-lb"

        servicetype: $parameters.lb-service-type

        ipv46: $parameters.lb-virtual-ip

        port: 80

        lbmethod: $parameters.lb-advanced.algorithm
<!--NeedCopy-->

Ahora, considere que el parámetro lb-advanced.algorithm es un parámetro opcional. Y, si el usuario no proporciona un valor para este parámetro porque es opcional, la expresión $parameters.lb-advanced.algorithm se evalúa como valor en blanco. Por lo tanto, se pasa un valor no válido para la lbmethod propiedad. Para evitar tal situación, puede anotar la propiedad como opcional sufijo su nombre con “?” según se indica a continuación:

components

   -

     name: lbvserver_comp

     type: ns::lbvserver

     properties:

       name: $parameters.lb-appname + "-lb"

       servicetype: $parameters.lb-service-type

       ipv46: $parameters.lb-virtual-ip

       port: 80

       lbmethod?: $parameters.lb-advanced.algorithm
<!--NeedCopy-->

¿El uso de “?” omite la propiedad si la expresión del derecho no se evalúa como nada, lo que sería equivalente, en este caso, a un componente definido de la siguiente manera:

components

  -

    name: lbvserver_comp

    type: ns::lbvserver

    properties:

      name: $parameters.lb-appname + "-lb"

      servicetype: $parameters.lb-service-type

      ipv46: $parameters.lb-virtual-ip

      port: 80
<!--NeedCopy-->

Debido a que lbmethod es opcional, omitirlo sigue siendo un componente válido. Tenga en cuenta que lbmethod podría tomar su valor predeterminado si uno está definido en su tipo «ns። lbvserver. «

Propiedades opcionales

En este artículo