2012-02-23 2 views

Répondre

11

Knockout est un modèle MVVM qui fonctionne avec un ViewModel javascript. La raison pour laquelle cela fonctionne bien avec MVC est que la sérialisation vers et depuis les modèles javascript dans JSON est très simple.

De plus, il sera inclus dans MVC4. Voici une vidéo par le créateur du knock-out sur la façon de l'utiliser pour les applications d'une seule page dans MVC4 (avec la nouvelle fonction de l'API Web de Microsoft):

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159

Mais les avantages sont vraiment que MVVM vous permet de développer riche interface utilisateur de avec beaucoup moins de codage (si vous connaissez Silverlight ou WPVM MVF, vous saurez exactement ce que je veux dire).

Compte tenu d'un ViewModel de:

var myViewModel = { myValue: 'some text' }; 

Vous n'êtes pas obligé de lier

$('#textBox').change(function() { myViewModel.myValue = $(this).val(); }) 

et l'inverse de

$('#textBox').val(myViewModel.myValue) 

dans tous les sens, ou la manipulation de code spécial de propriétés calculées dans votre vue dans Knockout. Vous pouvez tout faire d'une manière très orientée objet.

<input type="text" data-bind="value: myValue" /> 

Et tous les événements sont câblés.

+0

Merci beaucoup pour Paul réponse rapide. Oui, je sais MVVM dans WPF mais je ne suis pas capable de trouver un avantage spécifique dans l'application MVC, comme supposé que j'ai 10 propriétés dans mon modèle et maintenant je dois créer les mêmes 10 propriétés dans la vue Modèle pour lier les données. Alors pourquoi je fais du code supplémentaire? –

+0

Modifications immédiates de l'interface utilisateur lorsque les données changent. Si vous n'avez pas besoin de mises à jour "like-live", alors vous n'avez pas besoin de knock-out – soniiic

+0

ok. donc cela signifie que si quelqu'un fait des changements dans mes données, l'interface utilisateur mettra automatiquement à jour les valeurs sans aucune demande au serveur? –

2

Les benifits sont plus structurés, flexible code javascript côté client. Vous pouvez partitionner mieux l'interface utilisateur et pouvez aller si loin que vous vous retrouvez avec "un site web unique" ... qui ne fait que des requêtes json (si vous le souhaitez) signifie moins d'allers-retours de serveur plus petits répond , etc ...

Et pour moi le pense vraiment cool est la liaison par ... observables

http://knockoutjs.com/documentation/observables.html

vérifiez également ceci: MVC + Knockoutjs = côté client MVVM bonheur http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2378

0

Les avantages sont nombreux, quelques caractéristiques remarquables sont présentées ci-dessous:

  • Faisabilité de se connecter à tout moment avec les éléments de l'interface utilisateur dans le modèle de données.
  • Créez facilement des modèles de données complexes et dynamiques.
  • La liaison de données permet de manipuler les données stockées, de les répercuter sur l'interface utilisateur et de mettre à jour l'interface utilisateur avec des modifications régulières du serveur principal le cas échéant.
  • Prend en charge le modèle de programmation piloté par événement et offre une personnalisation à 100%.
  • Supporte IE, Firefox, Safari, Bing, Chrome et bien d'autres navigateurs principaux .
  • Permet d'éviter les ballonnements du dialogue HTTP avec la logique de présentation et la présentation de balisage sur le serveur.
  • Il assure l'application des règles métier, la sécurité des données et plus de contrôle sur la page Web .
  • Il offre également l'intégrité référentielle et de nombreuses fonctionnalités de validation en ce qui concerne le flux de travail pour plus de sécurité.
  • Knockoutjs offrent une extensibilité exceptionnelle. Il a de nombreux points d'extension et utilitaires pour construire une application.

Vous pouvez en lire plus ici de notre article https://cynere.com/advantages-of-knockoutjs

Questions connexes