【问题标题】:In my Angular.js app - Should I bind to the model that the Web API provides在我的 Angular.js 应用程序中 - 我应该绑定到 Web API 提供的模型吗
【发布时间】:2013-09-11 05:41:33
【问题描述】:

我正在使用 Angular 和 ASP.Net MVC 构建一个应用程序。

我在应用程序中使用的所有数据都由 Web API 提供(我正在对我的 ASP.Net 控制器进行 Ajax 调用,这些控制器又调用 Web API 并将 API 的响应返回到 html 页面)。

web api 使用的模型很好地映射了我的需求,我真的不需要改变任何东西。

但是我应该简单地绑定到 Web API 提供的模型吗?我看到的风险是,如果 Web API 发生任何变化,我最终可能会在我的应用程序中彻底改变。如果我在一个地方将 web api 模型翻译成我自己的,我只需要在那里进行更改。

但另一方面 - 将 Web API 模型映射到我自己的模型似乎是一项不必要的工作,因为模型最终会几乎相同。

【问题讨论】:

    标签: angularjs asp.net-web-api


    【解决方案1】:

    Keep things simple,当您可以控制应用程序的两侧时引入映射层似乎没有必要。

    仅在需要时引入额外的复杂性,例如在我们的应用程序中,我们使用带有 Nancyfx 的 asp.net 作为我们的 rest api。有几次我们从 api 映射到模型,但这些都是特殊情况(模型包含数据但也包含行为)。

    【讨论】:

      【解决方案2】:

      我们使用映射器的一个地方是将 .net 属性 Pascal case 映射到 json 属性 camelCase。

      但是看看this blog post,即使这个问题也可以通过提供正确的媒体格式化程序来解决,因此可以删除映射层。

      应根据具体情况使用映射层。希望对你有帮助。

      【讨论】:

        【解决方案3】:

        1 - 浏览器调用 WebAPI

        2 - WebAPI 返回 JSON 数据 - 实际上是域(或模型)对象 - 数据库表的副本。

        3 - Javascript 根据您的演示文稿将这些 JSON 对象转换为不同的对象(演示文稿总是复杂的 - 表格、图形、列表、格式化的东西、数据透视表)。

        4 - HTML 绑定到那些复杂的 javascript 对象

        你可以在这里找到非常漂亮的例子:upida4net.codeplex.com 带有挖空和棱角。

        【讨论】:

          猜你喜欢
          • 2014-08-19
          • 1970-01-01
          • 2021-11-24
          • 2011-04-10
          • 1970-01-01
          • 2016-11-11
          • 2017-11-29
          • 2014-04-05
          • 2015-05-04
          相关资源
          最近更新 更多