Javascript Backbone.js及其API混淆
我最近开始使用Javascript Backbone.js及其API混淆,javascript,model-view-controller,api,rest,backbone.js,Javascript,Model View Controller,Api,Rest,Backbone.js,我最近开始使用Backbone.js。我喜欢它的架构,就功能而言,它几乎正是我所需要的 。。。然而,我发现了以下警告: 对于Collectionsget表示与Models不同的内容。没有集。应该以常规方式访问属性。我觉得很不一致。有时很容易混淆模型和集合。有什么办法可以克服这个问题吗 在Model.extend中指定初始值并不总是有效。例如,分配url不会覆盖默认行为。这只能通过调用set()方法来实现。还是很容易出错 我仍然不知道是否需要在initialize()调用中使用get/set 我
Backbone.js
。我喜欢它的架构,就功能而言,它几乎正是我所需要的
。。。然而,我发现了以下警告:
- 对于
sCollection
表示与get
s不同的内容。没有Model
。应该以常规方式访问属性。我觉得很不一致。有时很容易混淆模型和集合。有什么办法可以克服这个问题吗集
- 在
Model.extend中指定初始值并不总是有效。例如,分配
不会覆盖默认行为。这只能通过调用url
方法来实现。还是很容易出错set()
- 我仍然不知道是否需要在
调用中使用initialize()
/get
set
- 我不明白为什么我不能在
中调用initialize()
,我必须像这样列出要绑定的特定函数名:.bindAll(this)
。这不是很干.bindAll(this,firstFunc,secondFunc,…)
- 我是否曾经被允许像这样在扩展上放置其他属性:
?var SomeModel=Backbone.Model.extend({myattribute:myvalue})
- 如果是这样,那么为什么对
的后续调用不起作用呢newsomemodel().get(“myattribute”)
- 如果是这样,那么为什么对
中的initialize()
到底是什么?是模型类还是模型实例这个
嗯,我发现了这个:。它看起来像Backbone.js 2.0,也有一个类似的名称:)。我还没有测试过它,这可能会有点阻碍展示,因为这个库是最近开发的。然而,从文档的角度来看,它看起来非常有希望。它消除了我发现的大多数问题,简化了API,甚至消除了对
underline.js
的依赖,这对于库来说是件好事。我将在这里发布我的进一步发现。集合没有“集合”的原因是集合不是数组,它们是集合,可能是有序的。将元素放置在特定位置的唯一受支持的方法是将其添加到集合中,然后对集合进行排序。好的,我想我现在可以非常自信地说:主干死了,脊椎长寿了
脊椎并不是脊椎的分叉。然而,它非常相似,显然受到了一些设计决策的启发。可以说,作者尽可能多地保留了原始主干API,去掉了一切不必要或不合逻辑的东西。我发现它也更容易扩展。变更列表包括以下内容:
- 摆脱可怕的
s。而是使用“类方法”收藏
- 最大限度地利用js原型特性(即不需要
/get
)。属性是直接访问的。要触发事件,需要显式调用set
save()
和视图
现在合并为新型的控制器
,其目的是响应DOM事件并绑定到模型事件控制器
- 姓名:)
我觉得这些设计决策连贯而明智。我不是这个意思。对于
模型
get()
表示返回属性值。集合可以有,也确实有属性,比如说.url
。但是,get()
保留用于访问项目。我个人不会给两个完全不同的函数取相同的名字——这是我的观点。我理解这一点。但是你也说过“没有集合。”同样,对于Model
s来说,set()
意味着设置一个属性。但是对于集合,我应该直接设置属性。这更令人困惑,因为可能会错误地对模型执行同样的操作,从而无法触发相应的触发器。按照这种逻辑,您永远无法将任何方法命名为“set”,因为它会让您对如何在其他不相关的类上设置值感到太困惑。好问题,我也发现主干有点奇怪。你应该把你的发现作为你自己问题的答案。@brianpeiris一旦我确定它确实可用,我会尽快告诉你。到目前为止,一切顺利。脊椎似乎真的被仔细考虑过了。我也更倾向于脊椎。我一直在使用主干网,get('property')这件事不仅在代码中,而且在模板中都是一件痛苦的事情。那是我唯一有骨气的真正的牛肉。我希望斯皮恩能上一堂观景课。如果您查看元素设计模式,它正是带有集合的视图在主干中所处的位置。@mgutz这可能是一种设计模式,但我总是发现集合是多余的。尤其令人痛苦的是,它们实际上是必需的(默认情况下构建URL的方式)。你们也可以在书脊上收藏,这比不在主干上收藏要少写。@julkiewicz主干已经死了?你的答案已经有一年多了。。。还是准确吗?@KinjalDixit我也在想同样的问题。这似乎是一篇写得很好的文章,作者在现实世界的项目中实现了这两个方面。最后,他说:“作为一个结论,我建议什么时候最关键的事情是简单还是简单