我一直在寻找框架来帮助我编写更好的结构化JS代码并遇到Backbone。它似乎有很多功能来创建具有公共和私有属性以及成员,继承等的类。
Angular JS似乎做了大量完全不同的事情,例如自动将标记绑定到模型,以及许多用于模板化,过滤,排序等的聪明技巧。
我的问题不是我应该选择哪个,但是同时使用它们是明智的吗? AngularJS看起来很酷,但除非我遗漏了某些东西,否则它似乎没有为你提供任何OO东西。这有意义吗?
答案 0 :(得分:3)
我不确定将Angular与另一个框架配对会非常有意义,它确实非常完整。
另一方面,Backbone更具可组合性,例如你可以看一下Knockback项目,它使Backbone和KnockoutJS很好地协同工作。 Knockout采用MVVM方法,与Angular中的相似。
答案 1 :(得分:2)
如果您需要为您的数据(即模型)编写OO,请使用像Base.js这样的库。它使用extend
等方法为您提供了良好的OO语法和继承。好的部分是它保持getter语法如myObject.var
所以它与Angular很好地配合,与Backbone相反,你需要使用getter myObject.get('var')
,所以数据绑定工作正常。
要理解这些语法和哲学之间的区别和原因,请阅读one of the Angular author's answer here in SO。
答案 2 :(得分:1)
AngularJS故意不强加任何特定的继承风格,因此您可以随意做任何事情。如果您喜欢Backbone.js的继承模型,可以使用underscore(包含在Backbone.js中)来提供.extend
帮助程序。