He estado reflexionando sobre el funcionamiento interno y la relación entre contexto, contextbinding, y bindingcontext para un par de días y ahora no estoy seguro de si hay un gran error de mi lado. Tal vez algunos de ustedes me puede ayudar a resolver. Estoy poniendo mis suposiciones a continuación. Yo quisiera decir en primer lugar que yo siempre trabajo con oData modelos aquí.

Esto es lo que creo entender de la lectura de la documentación:

Un contexto es una referencia a un objeto de datos en un modelo.

Un unión es, básicamente, un proveedor de eventos que (en el caso de una forma de unión) observa el estado de un contexto específico y emite eventos cuando se cambia/carga de datos … y por lo tanto permite registrar los controladores de eventos para los eventos en ese contexto específico. En cuanto a la programación de objetos, son propiedad de enlaces y la lista de enlaces (esto es cierto o es la lista de unión de todo lo que es siempre importante?).

En cualquier caso, a mi entender, es que una lista de unión es el modelo de un componente de agregación de enlace, mientras que una propiedad de unión se llama la propiedad vinculante para ambas de un componente y un modelo del punto de vista (confuso?).

Ahora lo que no acabo de conseguir es:
El contexto de la unión new sap.ui.model.ContextBinding(oModel, sPath, oContext, mParameters?, oEvents?): toma una ruta de acceso y un contexto como un parámetro. Estoy asumiendo que este oContext no es exactamente en el contexto descrito anteriormente, pero algunos de los metadatos en la unión. es esto correcto? O es esta la definición de thep ath que el parámetro de ruta es relativa?

Lo que también parece raro es cuando se quiere crear un contexto en sí new sap.ui.model.Contextabov(oModel, sPath, oContext) lleva a un contexto nuevo.
Creo que esto es sólo una desafortunada denominación que lo estoy mirando, pero no estoy muy seguro.

Entonces hay contextbinding y bindingcontext. Yo supongo que contextBinding es el enlace a un contexto específico, como se describe e. Y un bindingcontext es la meta de datos con respecto a un contexto o de la lista de unión.

De una programación de punto de vista, no entiendo por qué las siguientes obras:

  • crear una lista de unión del contexto a través de model.bindList() que pasa un camino solo.
  • adjuntar cambio de controlador de eventos de la unión
  • llamada get_contexts() en la unión
  • recibir datos en el controlador de eventos de cambio (y ver el oData de la propiedad de lleno en el modelo).

y no parece haber ninguna manera de hacer lo mismo con una propiedad de unión que yo supongo que me puede generar a través de model.bindProperty(). Puedo generar el enlace, pero la unión de recibir parece no tener un mango para realmente obtener los datos.

Espero que el paseo explica mi problema. En caso de que usted pregunte: ¿qué quieres hacer? Yo realmente no quiero hacer nada con ella, yo no entiendo muy bien cómo funciona esto. La unión a controles de interfaz de usuario y así sucesivamente funciona bien, pero prefiero a entender realmente lo que está debajo de la capucha. He estado leyendo archivos de depuración y pruebas de unidad un poco, pero discutiendo con ustedes parece una gran forma.

Si esto no es claro yo estaremos contentos de agregar cualquier cosa que ayude.

Saludos
Michel

OriginalEl autor michel luther | 2014-08-28

2 Comentarios

  1. 7

    sus preguntas son respondidas a continuación. Espero que ayude.

    1. Ahora lo que no es: El contexto de la unión nueva sap.ui.model.ContextBinding(oModel, sPath, oContext, mParameters?, oEvents?): toma una ruta de acceso y un contexto como parámetro. Estoy asumiendo que este oContext no es exactamente en el contexto descrito anteriormente, pero algunos de los metadatos en la unión. es esto correcto? O es esta la definición de thep ath que el parámetro de ruta es relativa?

      la oContext es el contexto que se mencionó anteriormente, para ser precisos, es sap.ui.model.Context.

    2. Lo que también parece raro es cuando se quiere crear un contexto nuevo sap.ui.model.Context(oModel, sPath, oContext) lleva a un contexto nuevo. Creo que esto es sólo una desafortunada denominación que lo estoy mirando, pero no estoy muy seguro.

      Supongo que la documentación aquí confundido. En realidad, sap.la interfaz de usuario.modelo.Contexto sólo toma oModel y sPath como parámetros. El código siguiente es lo que me sale de sap-ui-core.js. Usted puede ver el JSDoc parte acerca de los parámetros es en realidad incompatible con el código. Tal vez hay algún tipo de error tipográfico allí.

      /**
      * Constructor for Context class.
      *
      * @class
      * The Context is a pointer to an object in the model data, which is used to 
      * allow definition of relative bindings, which are resolved relative to the
      * defined object.
      * Context elements are created either by the ListBinding for each list entry
      * or by using createBindingContext.
      *
      * @param {sap.ui.model.Model} oModel the model
      * @param {String} sPath the path
      * @param {Object} oContext the context object
      * @abstract
      * @public
      * @name sap.ui.model.Context
      */
      var Context = sap.ui.base.Object.extend("sap.ui.model.Context", 
      /** @lends sap.ui.model.Context.prototype */ {
      
      constructor : function(oModel, sPath){
      
          sap.ui.base.Object.apply(this);
      
          this.oModel = oModel;
          this.sPath = sPath;
      
      },
      
      metadata : {
          "abstract" : true,
        publicMethods : [
              "getModel", "getPath", "getProperty", "getObject"
          ]
      }
      
      });
      
    3. De una programación de punto de vista, no entiendo por qué las siguientes obras:

      crear la lista de la unión a contexto por medio de un modelo.bindList (), pasando por una ruta.

      adjuntar cambio de controlador de eventos de la unión

      llame get_contexts() en la unión

      recibir datos en el controlador de eventos de cambio (y ver el oData de la propiedad de lleno en el modelo).

      y no parece haber ninguna manera de hacer lo mismo con una propiedad de unión que me asumir

      Puedo generar a través del modelo.bindProperty(). Puedo generar el enlace, pero el enlace me

      recibir parece no tener un mango para realmente obtener los datos.

      En realidad también puede attachChange evento sap.ui.model.PropertyBinding, y usted puede llamar a getValue() para obtener los datos.

    OriginalEl autor Haojie

  2. 2

    Gracias, Allen, que realmente me ayudó. Realmente principalmente fue una confusión con respecto a la documentación y la getValue se deslizó a mi también.

    Para agregar otra respuesta a una pregunta que sólo implícitamente incluido en el título:

    contexto de unión: la unión de configurar una ruta dada.

    contexto de enlace: el contexto de una unión, es decir, cuando viene de un componente, o algún otro conjunto vinculantes.

    Saludos
    Michel

    OriginalEl autor michel luther

Dejar respuesta

Please enter your comment!
Please enter your name here