Je joue avec KnockOutjs et j'aime absolument combien il simplifie la conception de chaque angle en gardant des trucs de tomber dans les fissures. Ma question est de savoir quelle est la "meilleure pratique" recommandée pour enregistrer les données sur le serveur? Ma compréhension est que dans un MVVM connecté, le premier "M" est la couche de données, puis le suivi et les notifications de dépendance dans la gâchette de la viewModel enregistre directement la couche de données. Dans une application JavaScript, nous sommes déconnectés et enregistrez-vous de manière sélective sur le serveur à l'aide de Ajax. P>
L'application que je l'utilise actuellement dans est MVC3 et j'obtiens absolument comment écrire une action "Enregistrer" sur mon contrôleur, PLOP a "Enregistrer" quelque part sur ma page, postez l'ensemble de la vue sur cette sauvegarde et puis persister que à la base de données. Mais qu'en est-il de la modification rapide, puis de la sauvegarder à nouveau? Ou si un bouton d'enregistrement ne correspond pas au flux de la conception? Au lieu de cela, vous voulez poster à l'action à chaque fois qu'un changement est effectué sur le formulaire sans bouton de sauvegarde du tout? Les idées que j'ai rebondi sont: p>
Je suis plein d'espoir qu'il y a de bonnes idées là-bas que je n'ai pas pensé. Pour être capable de tout lier de manière prédicative et toujours sauvegarder efficacement em> serait génial. P>
3 Réponses :
Je viens de rentrer de Mix11 où j'ai assisté à Cette session sur knockout. JS. Cela vaut peut-être la peine de regarder Steve Sanderson manivant une démo de crud. P>
Ouais, j'ai regardé cette démonstration magistrale la semaine dernière dès qu'il a été publié en ligne. Une vraie bonne démo qui montre ce que Knockout peut faire du côté du client, mais lorsqu'il a publié sur le serveur, il n'a rien fait, sauf le relayer le client pour montrer qu'il allait réellement sur le serveur. Je suis plus intéressé par ce que la meilleure pratique est lorsque vous enregistrez des modifications incrémentielles sur le serveur ... Tout en conservant la charge utile et le contrôleur efficace.
La seule autre chose que je pouvais penser est S'abonner . Quand j'ai commencé à lire votre message, je pensais cependant des drapeaux avec Grep. p>
Edit: Mieux encore, Voici un exemple de travail .. p>
La seule chose à faire est de détecter les modifications apportées aux valeurs des valeurs "retenues". Vous êtes bien sur votre chemin. P> ko.utils.compareArrays code> semble prometteur. p>
Wow. +1 pour la mise en œuvre élégante et je vais aller de l'avant et marquer cela comme la réponse pour l'instant. La question était plus théorique dans la nature, alors je suis sûr qu'il y a toujours d'autres méthodes, mais la manière dont cet exemple est configuré est génial. Même s'il existe toujours un bouton de sauvegarde dans cette implémentation, la partie COOL est qu'il n'y a pas à être. Tant que quelque chose déclenche Ko.Utils.comparrays, vous avez pourriez-vous utiliser de manière sélective les tableaux que vous aimez. Ce qui est exactement ce que j'étais curieux de. Bien fait. Merci pour votre contribution.
L'exemple de lien est cassé ... Toute chance L'exemple est toujours disponible? J'ai un point de vue qui a plusieurs niveaux de relations et je suis à la recherche d'options différentes sur l'épargne
Je ne sais pas où ça va mais c'est parti. Si vous avez une question de question spécifique, soyez prêt à faire une fissure.
Votre violon a été supprimé car il contenait une refonte Iframe à ce qui ressemble à des logiciels malveillants. Vous pouvez vérifier votre compte sur jsfiddle pour voir qu'il n'était pas compromis. En outre, ce serait bien si vous avez inclus le code réel à votre réponse plutôt que de simplement relier une ressource externe.
-1 Lien de réponse accepté pour la solution brisée. Le code doit être ajouté à la réponse si nécessaire.
Vous pouvez consulter le plugin de mappage pour KO KO, il vous permet de supprimer KO KNOKOUT à partir d'une matrice JSON. Si ce n'était pas trop gros, vous enregistrez ce tableau sur un serveur sur une minuterie (ou après un changement). J'espère que cela vous aidera, désolé si vous le saviez déjà. P>
http://knockoutjs.com/documentation/plugins-mbappe.html < / p>
Vous vous confondez MVC (comme dans ASP.NET MVC) et MVVM. Ils sont essentiellement le même modèle, mais MVVM a des changements spécifiques à la conception des applications WPF.
En fait, knockoutjs ( knockoutjs.com ) utilise le motif MVVM, ce qui est ce que l'affiche faisait également référence.
Question géniale! La même question sans knockout serait peut-être encore plus utile, car c'est juste l'un des nombreux cadres JS. Je vais continuer ma chasse à la réponse i> à cette question.
-1 Lien de réponse accepté pour la solution brisée. Le code doit être ajouté à la réponse si nécessaire.