javascript - 将现有的backboneJS应用程序转换为angularJS应用程序的最佳方法是什么

标签 javascript angularjs backbone.js

我正在尝试将现有的backbonejs应用程序转换为angularjs。将 Backbone 应用程序转换为 Angular 应用程序的最佳方法是什么?我应该如何在不破坏应用程序的情况下划分和征服代码

最佳答案

虽然我同意@Claies的观点,但由于两者之间存在重大差异,您无法将其中一个逐步转换为另一个。但是,我确实认为您可以使用 Backbone 应用程序作为引用来构建一个 Angular 应用程序,并且您可以使用一些代码 - 主要是一个应用程序中另一个应用程序的业务逻辑。

我过去曾使用过 Backbone 和 Angular ,但从未尝试过转换,所以请对我的想法持保留态度。

让我们看看 Angular 结构和主干结构之间有什么相似之处:

  1. View - 主干网具有可以使用路由器切换的 View 。 Angular 有一个 Controller 和模板组合的 View 由路由器控制。
  2. 组件 - 主干 View 由 subview 组成,其 自己的模型和功能,由 View 或更高级别呈现 subview 。 Angular 具有 View 可以组成的指令,每个指令 指令可以包含其他子指令。
  3. 业务逻辑 - 主干业务逻辑位于 View /模型/辅助对象。在 Angular 服务中负责 业务逻辑。
  4. 模型和集合 - Backbone 具有独特的模型和 具有某种绑定(bind)和事件功能的集合。 Angular 没有官方型号。模型可以小到一个变量 或者像一棵树一样大。 Angular 模型应该由 服务。

因此,经过基本审查后,这就是我要做的 - 我认为主要是逐个查看:

  1. 通过从 View 中删除所有业务逻辑来重构我的主干应用程序 和模型,并将它们移动到辅助对象中。
  2. 将助手转变为 Angular 服务。
  3. 将模型和集合转换为对象和数组。把它们包起来 Angular 服务 - 该服务将有方法获取和 更新模型。如果您需要听模型,您可以使用 $watch、ng-model 和 ng-change 或 $broadcast 一个事件,当您 更改服务中的模型。
  4. 将 View 转换为 Angular View - 即 Controller 和 模板。
  5. 将 subview 转换为指令 - 将数据从 View 传递到 指令可以使用属性、服务和事件来完成。
  6. 模板 - 都使用带有绑定(bind)的 html 模板,所以只要 您可以保留模型对象和数组结构 基本上很容易将 Handlebars 转换为 Angular 。您先请 查看模型,添加事件处理程序(ng-click 和 friend ), 和模型绑定(bind)(ng-model)。

关于javascript - 将现有的backboneJS应用程序转换为angularJS应用程序的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811362/

相关文章:

javascript - 如何使用 Backbone View 在下划线模板中渲染模型属性

node.js - Backbone.save() 上的 ERR_CONNECTION_RESET 通过 Mongoose 更新模型

javascript - 将垂直滚动条添加到 Google map 侧边栏

javascript - 在我的例子中如何获取异步数据

javascript - 有没有更好的方法在 JavaScript 中对数组项进行部分求和?

javascript - window.print() 在 IE 11 中不起作用

javascript - 为什么要定义一个匿名函数并将 jQuery 作为参数传递给它?

javascript - 未捕获的 TypeError : t. rgb 不是函数

javascript - 如何使用 UnderscoreJS 进行条件过滤

javascript - 以 MVVC/AngularJS 方式将数据发布为 multipart/form-data