Liaison, contexte, ContextBinding et BindingContext dans ui5

J'ai beaucoup réfléchi de l'intérieur et la relation entre le contexte, les contextbinding, et bindingcontext depuis quelques jours maintenant et je ne suis pas sûr de savoir si il y a un grand malentendu sur mon côté. Peut-être que certains d'entre vous peuvent m'aider à faire le tri. Je suis en train de monter mes hypothèses ci-dessous. J'aimerais d'abord dire que je travaille toujours avec oData modèles ici.

C'est ce que je crois comprendre à la lecture de la documentation:

Un contexte est une référence à un objet de données dans un modèle.

Un liaison est en fait un fournisseur d'événements qui (dans le cas d'un moyen de liaison) observe l'état d'un contexte spécifique et émet des événements lorsqu'il est changé de données/chargé ... et, par conséquent, permet l'enregistrement des gestionnaires d'événements pour les événements sur le contexte. En termes de programmation objets, il y a bien des liaisons et de la liste des liaisons (est-ce vrai ou est la liste de liaison de tous qui est toujours d'actualité?).

En tout cas, ma compréhension est qu'une liste de liaison est le modèle d'un composant de l'agrégation de liaison, tandis qu'une propriété de liaison est appelée propriété de lier à la fois à partir d'un composant et d'un modèle de point de vue (à confusion?).

Maintenant, ce que je n'ai pas tout à fait le faire est:
Le contexte de liaison new sap.ui.model.ContextBinding(oModel, sPath, oContext, mParameters?, oEvents?): prend un chemin d'accès et un contexte en tant que paramètre. Je suis en supposant que cette oContext n'est pas exactement le contexte décrit ci-dessus, mais certaines métadonnées sur la liaison. est-ce correct? Ou est-ce la définition de thep ath lequel le paramètre de chemin est relatif?

Également ce qui semble bizarre, c'est quand vous voulez créer un contexte lui-même new sap.ui.model.Contextabov(oModel, sPath, oContext) prend un contexte nouveau.
Je crois que c'est juste un malheureux de nommage chose que je suis en train de regarder, mais je ne suis pas tout à fait sûr.

Puis il y a contextbinding et bindingcontext. Je suppose que contextBinding est la liaison à un contexte spécifique, comme décrit e. Et un bindingcontext est le méta-données relatives à un contexte ou à la liste de liaison.

À partir d'un point de vue programmation, je ne comprends pas pourquoi les ouvrages suivants:

  • créer une liste de liaison du contexte via model.bindList() le passage d'un chemin.
  • joindre changement de gestionnaire d'événement pour la liaison
  • appel get_contexts() sur la liaison
  • de recevoir des données dans le changement de gestionnaire d'événement (et de voir la oData bien rempli dans le modèle).

et il semble y avoir aucun moyen de faire la même chose pour une propriété de liaison qui je suppose que je peux générer via model.bindProperty(). Je peux générer la liaison, mais la liaison-je recevoir ne semble pas avoir de poignée à fait récupérer les données.

J'espère que la randonnée à pied explique mon problème. Dans le cas où vous vous demandez : que voulez-vous faire? En fait je ne veux pas faire quelque chose avec elle, je ne comprends pas très bien comment cela fonctionne. La liaison à des contrôles d'interface utilisateur, et ainsi de suite fonctionne très bien, mais je préfère vraiment comprendre ce qui est sous le capot. J'ai lu dans les fichiers de débogage et les tests unitaires un peu, mais en discuter avec vous les gars semble un excellent moyen ainsi.

Si c'est pas clair je vais joyeusement ajouter tout ce qui vous aide.

Cheers
Michel

source d'informationauteur michel luther