这是AngularJS页面的内容描述:
如果AngularJS是为构建Web应用程序而设计的,则HTML将会是HTML。具有数据绑定,MVW,MVVM,MVC,依赖项注入和出色的可测试性故事的声明性模板全部通过纯客户端JavaScript实现!
那么MVW代表什么呢?(考虑到MVC,MVVW,MVP等争吵,我猜是“无论如何”,Model-View-Whatever = P)
这是AngularJS页面的内容描述:
如果AngularJS是为构建Web应用程序而设计的,则HTML将会是HTML。具有数据绑定,MVW,MVVM,MVC,依赖项注入和出色的可测试性故事的声明性模板全部通过纯客户端JavaScript实现!
那么MVW代表什么呢?(考虑到MVC,MVVW,MVP等争吵,我猜是“无论如何”,Model-View-Whatever = P)
Answers:
它确实代表了一切,就像对您有用的一切一样
MVC vs MVVM vs MVP。许多开发人员可能花费数小时来辩论和争论,这是一个有争议的话题。
几年来+ AngularJS更接近于MVC(或其客户端变体之一),但是随着时间的流逝,由于许多重构和api的改进,现在它更接近MVVM – $ scope对象可以被认为是ViewModel被我们称为控制器的函数修饰。
能够对框架进行分类并将其放入MV *存储桶之一具有一些优势。通过使创建代表使用框架构建的应用程序的思维模型更容易,它可以帮助开发人员更熟悉其api。它还可以帮助建立开发人员使用的术语。
话虽如此,我宁愿看到开发人员构建经过精心设计并遵循关注点分离的踢屁股应用程序,也不愿看到他们浪费时间争论MV *废话。因此,我特此声明AngularJS为MVW框架-模型-视图-任何。凡代表“凡事为您服务”的地方。
Angular为您提供了很大的灵活性,可以很好地将表示逻辑与业务逻辑和表示状态分开。请使用它来提高您的生产力和应用程序可维护性,而不是热烈讨论最后没有什么关系的事情。
话虽如此,我宁愿看到开发人员构建经过精心设计并遵循关注点分离的踢屁股应用程序,也不愿看到他们浪费时间争论MV *废话。因此,我特此声明AngularJS为MVW框架-模型-视图-任何。凡代表“凡事为您服务”的地方。
我觉得MWV(无论模型视图如何)或MV *是一个更灵活的术语,以我的角度描述Angularjs的某些独特之处。它帮助我了解了它不仅是MVC(模型视图控制器)JavaScript框架,但由于它具有模型视图和控制器,因此仍使用MVC。
也可以将其视为MVP(模型视图演示器)模式。我认为Presenter是Angularjs中View的用户界面业务逻辑。例如,通过使用可以格式化数据以进行显示的过滤器。它不是业务逻辑,而是显示逻辑,它使我想起了我在GWT中使用的MVP模式。
另外,它也可以是MVVM(模型视图),视图模型部分是两者之间的双向绑定。最后是MVW,因为它还有您可以使用的其他模式以及@Steve Chambers提到的模式。
我同意其他答案,即学以致用这些术语可能是有害的,因为重点是要从术语中理解概念,但同样,充分理解这些术语也可以帮助他们在设计应用程序代码时知道什么去哪里,为什么。