因此,我希望有一个协作列表对象,在其中存储其他列表,例如:
var tasks = model.createList();
tasks.pushAll([['Do', 'Buy', 'go'], ['1', '23', '44', '21']]);我的问题是:如何访问这些元素?通常,像tasksi这样的东西可以工作,但在实时api的情况下,它不能。当然,我可以使用.asArray()方法,但是当我想要向list对象中的特定数组添加某些内容时,它对我没有任何用处。
编辑:好的,你可以用例如:Tasks.get(i)[j]来获取它们,但是如何在一个特定的数组中添加新的元素呢?tasks.get(i).push('something')不起作用。
发布于 2016-02-17 23:54:04
var dumbList = tasks.get(i).slice();将为您提供一个放在那里的普通(非协作)数组的副本。您可以更改它,然后在协作数组中重新设置该值,以便将新版本放入您的文档中。
dumbList.push('new item');
tasks.set(i, dumbList);这将在tasks上触发ValuesChangedEvent。
发布于 2016-02-16 10:18:49
因为model.createList()返回一个CollaborativeList类,所以get方法应该可以做到这一点(正如您所指出的那样)。push应该仍然可以工作,因为它将在列表的末尾添加一项。除了推送之外,您可以使用的另一种方法是insert,但是您必须指定它将被添加到哪个索引。
此外,请查看Data Modeling Guidelines,因为它包含了使用Realtime API设计有效和正确的数据模型的方法。
https://stackoverflow.com/questions/35416044
复制相似问题