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

时间:2015-08-04 13:58:13

标签: javascript angularjs backbone.js

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

1 个答案:

答案 0 :(得分:1)

虽然我同意@Claies认为,由于两者之间的主要差异,你无法将其逐步转换为另一个。但是,我认为你可以使用骨干应用程序作为参考来构建一个角度应用程序,并且你可以使用一些代码 - 主要是来自另一个应用程序的业务逻辑。

我过去曾经使用过骨干和棱角分明的角色,但从未尝试过转换,所以请用一大堆盐来思考。

让我们看看角度和主干结构之间的相似之处:

  1. 视图 - Backbone具有可以使用路由器切换的视图。 Angular具有控制器和模板组合的视图 由路由器控制。
  2. 组件 - 骨干视图由子视图和它们组成 自己的模型和功能,由视图或更高级别呈现 子视图。 Angular有一个视图可以组成的指令和每个 指令可以包含其他子指令。
  3. 业务逻辑 - 骨干业务逻辑驻留在 视图/模型/辅助对象。在角度服务负责 业务逻辑。
  4. 模型和收藏 - Backbone有一个独特的模型和 具有一种绑定和事件功能的集合。角 没有官方模特。模型可以与变量一样小 或像树一样大。角度模型应由a处理 服务。
  5. 所以,在这个基本的评论之后,这就是我要做的事情 - 主要是按照我认为的观点来看:

    1. 通过从视图中删除所有业务逻辑来重构我的主干应用程序 和模型,并将它们移动到辅助对象中。
    2. 将助手转变为角度服务。
    3. 将模型和集合转换为对象和数组。把它们包裹起来 角度服务 - 服务将有方法来获取和 更新模型。如果您需要收听模型,可以使用 $ watch,ng-model& ng-change,或$播放事件时你 更改服务中的模型。
    4. 将视图转换为角度视图 - 即控制器和控制器的组合 模板。
    5. 将子视图转换为指令 - 将视图中的数据传递给 指令可以使用属性,服务和事件来完成。
    6. 模板 - 两者都使用带有绑定的html模板,所以只要 你可以保留模型对象和数组结构 基本上很容易将把手转换成角度。在你之后 查看模型,添加事件处理程序(ng-click和朋友), 和模型绑定(ng-model)。