J'essaie de connecter mon serveur de repos avec une application JavaScript. Utilisation de la requête Ajax, je reçois le bon Json, mais je ne peux pas le lier à mon site Web HTML. J'utilise les données de données dans HTML:
0: Object { index: 127001, name: "John", surname: "Smith", ⦠} 1: Object { index: 127002, name: "Abcd", surname: "Xyz", ⦠}
3 Réponses :
pris directement à partir du Docs P>
La première fois que vous récupérez des données, vous devriez faire cela p>
Alors chaque fois que chaque fois les données sont reçues du serveur après que p>
varmodel = ko.mapping.fromjs (données); code> p>
ko.mapping.fromjs (Data, ViewModel); code> p>
Malheureusement toujours le même problème
Votre JSON a l'air bien et il n'y a rien de mal à utiliser 3 arguments pour votre mappage.fromjs avec un objet vide comme argument "Options". Je suppose que c'est une question de contexte avec quel objet votre balisage tente de se lier. Si vous êtes toujours au niveau de la racine, le modèle de vue, la liaison échouera car «index» n'existe pas au niveau de la racine. Vous avez besoin d'un p> foreach code> liant pour nichoir dans l'objet enfant "Étudiants".
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>
<table>
<tbody data-bind="foreach: students">
<tr>
<td> <input type="number" data-bind="value: index" name="index" readonly> </td>
<td> <input type="text" data-bind="value: name" name="name" required> </td>
<td> <input type="text" data-bind="value: surname" name="surname" required> </td>
<td> <input type="date" data-bind="value: birthdate" name="birthdate" min="1950-01-01" max="2050-01-01" required> </td>
<td><button type="button">Edit</button></td>
</tr>
</tbody>
</table>
J'ai également réussi à résoudre mon problème de cette manière: et à l'aide de foreach p>
Quel est exactement
ko code>
ko est knockout.js
knockoutjs.com/documentation/observables.html
De ce que je vois,
ko.mapping.fromjs code> ne prend que deux paramètres au plus, et vous le passez 3, le 2e étant un objet vide ... pourquoi est-ce?
sans cela j'ai le même problème
On dirait que vous devez mieux lire la documentation.
ko.mapping.fromjs code> attend un ensemble de données et un modèle de vue, mais au lieu d'une vue de vue, vous lui transmettez une matrice observable.
KnockOutjs.com/documentation/plugins-mbappe.html
Utilisation de ViewModel Comme celui-ci: '' Var MyViewModel = {index: ko.observable (index), nom: ko.observable (nom), nom de famille: ko.observable (nom de famille), Date de naissance: ko.observable (Date de naissance)} '' 'et l'appliquer comme ça: ko.mapping.fromjs (résultat, myViewModel); J'ai toujours un indice n'est pas défini "problème
Avez-vous un
data-bind = "foreach: étudiants" code> quelque part? Sans un votre contexte est le modèle de visualisation root qui n'a pas de propriété "index".