每个扩展类的唯一id
Unique IDs for Each Extended Class
我有一个baseCollection和baseModel在主干写在Coffeescript,像这样:
class Collection extends Backbone.Collection
constructor: (attrs = {}, options = {}) ->
return attrs if attrs instanceof Collection
return self if self = constructorCheck attrs, options
super attrs
constructorCreate @, attrs, options
所有模型/集合都是从这些基本单元扩展而来的。是否有可能为每个类创建一个惟一的id来扩展这些基类?如:
class Animals extends Collection --> given a uniqueID
class Monkeys extends Animals --> given a uniqueID
目标是从缓存所有模型和集合的Universal Collection Store中过滤集合/模型。我想重新创建模型存储,如本文所述篇文章
我不确定我很遵循,但我猜你正试图创建一种方法来访问跨视图的动物和猴子的集合的单例实例?
如果是这种情况,这是我对coffeescript的第一次尝试-不完全相同的模式,听起来像你在寻找,但在coffee/javascript
中的一个选项class Registry
find: (t) ->
lookup = @lookup ||= {}
lookup[t] ||= new t
class People extends Backbone.Collection
class Things extends Backbone.Collection
r = new Registry
p = r.find(People)
p2 = r.find(People)
t = r.find(Things)
t2 = r.find(Things)
if p != p2 || t != t2 || p == t
alert('failure')
else
alert('pass')
然而,为了更接近于回答你的问题,这里是如何为每个扩展类生成唯一id的方法。我不完全确定这是你真正想要的,虽然每个集合都是自己的实例/不会跨视图同步(然而,相同'类型'的所有集合将具有相同的'myId')。
index = 0
lookup = {}
class MyCollection extends Backbone.Collection
constructor: ->
f = arguments.callee.caller
if(lookup[f]?)
@myId = lookup[f]
else
lookup[f] = index
@myId = index
index += 1
class People extends MyCollection
class Things extends MyCollection
p = new People()
p2 = new People()
t = new Things()
t2 = new Things()
if p.myId != p2.myId || t.myId != t2.myId || p.myId == t.myId
alert('failure')
else
alert('pass')
我自己可能不会采用后一种方法,但它应该是可行的。
相关文章:
- 正在为循环创建唯一id
- 在JavaScript中创建全局唯一ID
- 为dropdownlistfor(MVC)中的每个元素设置唯一id
- 向具有唯一Id的表添加/删除行
- 基于唯一ID合并geojson
- 如何为使用 jQuery 动态生成的按钮提供唯一 ID
- 类似系统:循环形成唯一id,得到这些id'使用jQuery/Javascript单独发布
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- 在所有页面中搜索<身体>具有唯一ID
- 如何从多个唯一id中获取值
- 为客户端和服务器上的对象生成唯一 ID
- 如何使用jQuery创建具有唯一ID的可重复表
- 在 Firebase 中通过对象的唯一 id 查找对象
- 如何将唯一 ID 添加到 Javascript 中动态创建的输入字段
- 页面上第二个表单所需的唯一 id 属性
- 克隆并附加唯一 ID 后找不到 DOM 元素
- 如何在 append() 上添加具有唯一 id 的编辑按钮
- Chrome 标签页的永久唯一 ID,在浏览器会话之间持续存在
- 跨多个客户端和服务器生成真正的全局唯一 ID
- 如何通过 php 中的唯一 ID 删除 Json