首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Drive Realtime API -添加协作地图

Google Drive Realtime API -添加协作地图
EN

Stack Overflow用户
提问于 2014-02-13 02:09:51
回答 1查看 412关注 0票数 0

我的计划是创建一个数据模型,它是一个协作地图,包含协作列表,其中包含自定义对象。然而,我正在努力理解google api文档。我的目标是尝试创建一个事件管理工具,类似于这里演示的http://commondatastorage.googleapis.com/io-2013/presentations/708%20-%20Realtime%20API%20IO%202013.pdf

代码语言:javascript
复制
  function initializeModel(model) {
     var map = model.createMap();
      model.getRoot().set('map', map);
  }

  function onFileLoaded(doc) {
  var map = doc.getModel().getRoot().get('map');
  map(gapi.drive.realtime.EventType.VALUE_CHANGED, "some function which will update the project");

我认为这会创建地图,但是,我不知道如何访问它来添加不同分支的自定义列表,然后依次向这些分支添加自定义对象。我是Google Realtime API的新手。任何帮助都是非常感谢的。谢谢,

EN

回答 1

Stack Overflow用户

发布于 2014-02-16 01:35:58

要创建协作地图,请使用Model.createMap()。您在initializeModel函数中这样做是正确的:

代码语言:javascript
复制
var map = model.createMap();

要将项目添加到协作地图,请使用CollaborativeMap.set。在将创建的映射添加到根映射时,您还可以在initializeMap函数中执行以下操作:

代码语言:javascript
复制
model.getRoot().set('map', map);

请注意,所有模型都从名为根的协作地图开始,您可以使用Model.getRoot()访问该地图。因此,在您的initializeModel函数之后,您的文档模型如下所示

代码语言:javascript
复制
{map: {}}

至此,您已经成功创建了一个可以向其中添加协作列表的协作地图。在onFileLoaded函数中,您可以使用下面这一行获得对映射的引用:

代码语言:javascript
复制
var map = doc.getModel().getRoot().get('map');

要将列表添加到映射,您需要创建一个列表:

代码语言:javascript
复制
var list = doc.getModel().createList();

然后将列表添加到地图中:

代码语言:javascript
复制
map.set('mylist', list);

现在,您的文档模型如下所示:

代码语言:javascript
复制
{map: {mylist: []}}

我不知道你最后一句话的意图是什么。var map是一个对象,不可调用。通常,在添加事件处理程序时会引用事件类型。例如,如果您希望函数在地图上的值发生更改时运行,则可以执行以下操作:

代码语言:javascript
复制
map.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,
    function(e) {
        console.log('key ' + e.property + ' changed from value ' + e.oldValue + ' to value ' + e.newValue);
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21736122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档