permet d'assumer une vue de mention de mJs maintenant je peux faire p> je peux aussi faire quelque chose comme p> Les deux scénarios mettent à jour tout champ lié à vm.fooo1.barb p> Ce que je voudrais faire est quelque chose comme p> aucun d'entre eux ne fonctionne. p> J'en ai besoin parce que dans mon vrai scénario, mon modèle est de retour D'un service WebService, les mises à jour FOO1 et FOO2 sont également retournées et je ne veux pas trop de cartographie personnalisée. p> p>
3 Réponses :
Apparemment, il y a un certain paramètre supplémentaire mystérieux ..
ko.mapping.fromJS(foo, {}, vm.Foo1);
Ce fromjs code> Signature est décrit dans le Docs .
Autant que je sache, ce n'est pas possible. Mais vous pouvez le faire:
var js = { Foo1 : { BarA : 'text', BarB : 'other text' }, Foo2 : { BarC : 'some text' }}; var vm = ko.mapping.fromJS(js); ko.applyBindings(vm); //later, after fetching data from the webservice: //data = { // Foo1 : { // BarA : 'text', // BarB : 'other text' }, //}; note: Foo2 is not defined ko.mapping.fromJS(data, {}, vm);
Vous ne voulez pas faire de mappages personnalisés, mais que vous envisagez de changer d'API, considérez les implications de ce que cela signifie que si vous comptez sur les résultats de l'API directement tels quels.
I.e. Dites que vous avez un résultat de l'API de: p> de sorte que vous utilisez tout sur votre balisage avec un tas de choses comme: p> Vous avez les noms de champ liés partout dans votre balisage dans 100 places. Vous vous appuyez sur eux dans des observables, des fonctions, et sur et encore et encore. Vous avez une dépendance 100% dure sur cette API. P> Si cette API devait changer, ou être remplacée et avoir un format différent pour les données retournées que vous auriez une pause de votre application et que vous auriez Pour résoudre tant de choses. p> D'autre part, si vous avez un fichier de couche de service JS qui crée des instances d'objets personnalisés pour les résultats de l'API, tout ce que vous avez à modifier est votre couche de service. P > Vous pouvez changer facilement d'API et de ne pas avoir à modifier l'un de vos observables, des liaisons d'interface utilisateur, etc. Vous avez créé une couche de couplage entre l'application et les données d'extrémité arrière et vous pouvez échanger des raccords pour modifier l'ensemble du backend. P> Je sais que ce n'est pas une réponse à votre question, mais je repenserais que vous êtes Stratégie de cartographie des résultats de l'API ou en prendre en compte. P> P> <étiquette Data-Bind = "Texte: user.employeecode"> étiquette> code> p>