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
Vous devez vous connecter pour publier un commentaire.
à vos questions ci-dessous. Espérons que cela aide.
Maintenant, ce que je n'ai pas tout à fait le faire est: Le contexte de liaison de nouveaux
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?la oContext est le contexte que vous avez mentionné ci-dessus, pour être précis, est
sap.ui.model.Context
.Également ce qui semble bizarre, c'est quand vous voulez créer un contexte lui-même de nouvelles
sap.ui.model.Context(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.Je suppose que la documentation ici confus. En fait, sap.l'interface utilisateur.de modèle.Le contexte prend oModel et de sPath en tant que paramètres. Le code suivant est-ce que je reçois de sap-ui-core.js. Vous pouvez voir le JSDoc partie sur les paramètres est en fait incompatible avec le code. Peut-être il y a une sorte de faute de frappe.
À partir d'un point de vue programmation, je ne comprends pas pourquoi les ouvrages suivants:
créer une liste de liaison du contexte par le modèle.bindList() le passage d'un chemin.
fixez le changement de gestionnaire d'événement pour la liaison
appel get_contexts() sur la liaison
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
Je peux générer via le modèle.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.
En fait, vous pouvez également
attachChange
événement àsap.ui.model.PropertyBinding
et vous pouvez les appeler getValue() pour obtenir les données.Merci, Allen, qui m'a vraiment aidé. Il vraiment a une confusion concernant la documentation et l'getValue glissé moi aussi.
Pour ajouter une autre réponse à une question qu'implicitement inclus dans le titre:
contexte de liaison: la liaison que vous avez défini pour un chemin donné.
contexte de liaison: le contexte d'une liaison, c'est à dire lors de l'entrée à partir d'un élément, ou un ensemble contraignants.
Cheers
Michel