Voici la description du contenu de la page AngularJS:
AngularJS est ce que HTML aurait été s'il avait été conçu pour créer des applications Web. Des modèles déclaratifs avec liaison de données, MVW, MVVM, MVC, injection de dépendance et histoire de testabilité, tous mis en œuvre avec du JavaScript pur côté client!
Alors, que signifie MVW? (Compte tenu de la querelle entre MVC, MVVW, MVP, etc., je suppose que "peu importe", Model-View-Whatever = P)
Il en va en effet pour tout, comme dans tout ce qui fonctionne pour vous
MVC vs MVVM vs MVP. Quel sujet controversé que de nombreux développeurs peuvent passer des heures et des heures à débattre et à débattre.
Pendant plusieurs années, AngularJS était plus proche de MVC (ou plutôt de l'une de ses variantes côté client), mais avec le temps et grâce à de nombreuses modifications de refactorisation et améliorations de l'API, il est maintenant plus proche de MVVM - l'objet $ scope peut être considéré comme le ViewModel qui est être décoré par une fonction que nous appelons un contrôleur.
Pouvoir classer un cadre et le placer dans l'un des compartiments MV * présente certains avantages. Il peut aider les développeurs à être plus à l'aise avec ses API en facilitant la création d'un modèle mental représentant l'application en cours de construction avec le framework. Cela peut également aider à établir une terminologie utilisée par les développeurs.
Cela dit, je préférerais que les développeurs construisent des applications géniales qui soient bien conçues et respectent la séparation des préoccupations plutôt que de les voir perdre du temps à se disputer à propos de MV * nonsense. Et pour cette raison, je déclare par la présente AngularJS comme étant le framework MVW - Model-View-Whatever. Où que ce soit signifie "tout ce qui fonctionne pour vous" .
Angular vous donne beaucoup de flexibilité pour séparer parfaitement la logique de présentation de la logique métier et de l'état de la présentation. Utilisez-le pour alimenter votre productivité et la maintenabilité de vos applications plutôt que pour des discussions animées sur des sujets qui, en fin de compte, importent peu.
MVW signifie Model-View-Whatever .
Pour être complet, voici tous les acronymes mentionnés:
MVC - Model-View-Controller
MVP - Model-View-Presenter
MVVM - Model-View-ViewModel
MVW/MV * - Model-View-Whatever
Et quelques autres:
HMVC - contrôleur modèle-vue-hiérarchique
MMV - vue modèle multi-usage
MVA - Model-View-Adapter
Cela dit, je préférerais que les développeurs construisent des applications géniales qui soient bien conçues et respectent la séparation des préoccupations plutôt que de les voir perdre du temps à se disputer à propos de MV * nonsense. Et pour cette raison, je déclare par la présente AngularJS comme étant le cadre MVW - Model-View-Whatever. Où que ce soit signifie "tout ce qui fonctionne pour vous".
Crédits: Poste AngularJS - Igor Minar
AngularJS - Cadre JavaScript super-héroïque de MVW
Je pense que MWV (Model View Whatever) ou MV * est un terme plus flexible pour décrire le caractère unique d'Angularjs à mon avis. Cela m'a aidé à comprendre que c'est plus qu'un framework JavaScript MVC (Model View Controller), mais qu'il utilise toujours MVC car il possède une vue Modèle et un contrôleur.
Il peut également être considéré comme un modèle MVP (Model View Presenter). Je pense à Presenter en tant que logique métier d’interface utilisateur dans Angularjs for the View. Par exemple, en utilisant des filtres pouvant formater des données pour affichage. Ce n'est pas une logique métier, mais une logique d'affichage qui me rappelle le modèle MVP que j'ai utilisé dans GWT.
En outre, il peut également s'agir d'un MVVM (Model View View Model), la partie View Model étant la liaison bidirectionnelle entre les deux. Enfin, il s’agit de MVW car il existe d’autres modèles que vous pouvez utiliser, ainsi que ceux mentionnés par @Steve Chambers.
Je suis d’accord avec les autres réponses selon lesquelles il peut être préjudiciable d’être pédant sur ces termes, car il s’agit de comprendre les concepts à partir des termes, mais du même coup, comprendre parfaitement les termes aide à concevoir le code de leur application, sachant quoi. va où et pourquoi.