Google Drive 实时和 Angular 魔法

2024-03-30

我正在观看 YouTube 视频作者:Steve Bazyl 关于驱动器实时 API 的介绍。他提到使用实时和角度框架就像魔法一样。我已经开始研究它会是什么样子,但我还没有看到它的魔力。我很清楚,我可能不是这两个方面的专家,并且遗漏了一些小部分。

有人愿意启发我吗?我猜想有一种非常好的方法可以使内存中的数据模型自动神奇地连接到用户界面并与其他编辑和实际驱动文件同步。我很接近吗?


神奇可能有点夸张,但以下是我认为它们可以很好地配合的几个原因。

  • 如果您花时间为模型声明类型,它们可以很好地与 Angular 的数据绑定配合使用,并且属性可以与 ng-model 一起使用。

  • 更重要的是,由于 Angular 的工作方式,处理远程事件变得轻而易举。您真正需要的是一个事件侦听器:

    doc.getModel().getRoot().addEventListener(
      gapi.drive.realtime.EventType.OBJECT_CHANGED, 
      function(event) {
        if (!event.isLocal) {
          $rootScope.$digest();
        }
      });
    

    这就是确保 UI 适当更新以响应远程事件所需要做的全部事情:)

有一些例外:

  • 协作字符串很特殊。如果你不关心光标位置,你可以做一个简单的猴子补丁来将文本公开为与 ng-model 一起使用的标准属性。

    Object.defineProperty(gapi.drive.realtime.CollaborativeString.prototype, 'text', {
      set:function (value) {
        return this.setText(value);
      },
      get:function () {
        return this.getText();
      }
    });
    

然后,您可以绑定到协作字符串,例如:

    <input type="text" data-ng-model="myCollaborativeString.text"/>

为了正确定位光标,编写可重用指令来做到这一点并不难。接下来的几周内,我将在 github 上开始收集有用的指令等,因此创建完全协作的文本字段就像添加属性一样简单:

    <textarea data-rt-collaborative data-ng-model="myCollaborativeString"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Drive 实时和 Angular 魔法 的相关文章

随机推荐

  • XML 文档中需要转义哪些字符?

    XML 文档中必须转义哪些字符 或者在哪里可以找到这样的列表 如果您使用适当的类或库 他们将为您进行转义 许多 XML 问题都是由字符串连接引起的 XML 转义字符 只有五个 quot apos lt lt gt gt amp 转义字符取决
  • 如何判断 Windows 用于启动哪个磁盘

    我需要找到一种方法来以编程方式确定 Windows 使用哪个磁盘驱动器启动 换句话说 我需要一种从 Windows 中确定 BIOS 使用哪个驱动器来启动整个系统的方法 Windows 是否公开了一个接口来发现这一点 鉴于 Windows
  • C# 中的解析器 FxCop 结果 Xml 文件

    我以编程方式使用VS2010和Fxcop 10 0 fxcopcmd exe 来生成fxcop分析结果 xml文件 我想要解析器 xml 文件来获取 fxcop 分析结果 在java语言中我发现了这个 http grepcode com f
  • 使用react-router-relay类型增强react-router模块

    默认的react router是这样使用的 import as React from react import Router Route hashHistory from react router const routing
  • Flutter WebView 插件 - 如何处理本地存储变量

    背景 我正在开发一个移动应用程序 其中使用 WebViewScaffold 加载在线目录 此特定目录提供初次访问时的导游服务 问题 每次我导航到目录 WebView 时 游览都会从头开始 这会冻结用户 直到游览完成 我怎样才能避免这种情况发
  • 按变量将 Dunnett 检验中的 P 值提取到表中

    我有一个包含 25 列的列表 我正在通过 Dunnett 测试按组 4 个级别 对其进行测试 我能够使用sapply函数让 Dunnett 按组对所有列起作用 但在将 p 值拉入表中时遇到一些问题 下面是我尝试使用 iris 数据集执行的操
  • 使用 Android Google Maps API 显示热图图层

    我正在 Android 中做一个项目 其中我给出了一个地理点列表 纬度 经度 每个点都有一个关联的海拔 高度 值 我的任务是根据点的高度值创建具有不同颜色的给定地图的热图 有人知道现有的图书馆可以做同样的事情吗 或者 如果有人能够指导如何实
  • 使用 TextFileColumnDataTypes 打开每列数据格式正确的 CSV 文件?

    我正在使用下面的 VBA 代码在 Excel 中打开 csv 文件 该代码模拟 Data Text to Columns 命令 在代码中需要为属性指定一个数组文本文件列数据类型 它为 csv 文件中的每一列指定一个数据格式 2 文本格式 但
  • 使用 linq2db 执行原始 SQL 字符串

    使用 linq2db https github com linq2db linq2db https github com linq2db linq2db 我可以执行原始 SQL 字符串并获取结果吗dynamic 我正在寻找类似 ADO NE
  • 无法在此小部件上方找到正确的提供程序 - Flutter

    我是 Flutter 新手 我在 Flutter 应用程序中使用 Provider 我的 main dart 文件如下所示 import package flutter material dart import package provid
  • 绝对定位忽略父级的填充

    如何使绝对定位元素尊重其父元素的填充 我想要一个内部 div 延伸到其父级的宽度 并放置在该父级的底部 基本上是一个页脚 但孩子必须尊重父母的填充 但它没有这样做 孩子被压在父母的边缘 所以我想要这个 但我得到这个 div style ba
  • 使用jquery检查多个复选框

    我有一个类似的数组 var values 1 3 4 5 我有复选框列表 div div
  • “设置时间戳”怎么会是慢查询呢?

    我的慢查询日志充满了如下条目 Query time 1 016361 Lock time 0 000000 Rows sent 0 Rows examined 0 SET timestamp 1273826821 COMMIT 我猜是set
  • CapnProto 最大文件大小

    目前我们正在使用 ProtocolBuffers 在 python 和 C 之间交换数据 然而 我们遇到了协议缓冲区的最大文件大小限制 并正在考虑将所有内容切换到 Cap n Proto 但是 由于它与协议缓冲区有些相关 我想知道Cap n
  • 在同一应用程序中实施 Stormpath 表单登录/身份验证以及 REST oAuth 身份验证时遇到问题

    我们将 Stormpath 与 Java 结合使用 并尝试在同一应用程序上将表单登录与 REST API 身份验证结合起来 我已经按照此处所述设置了stormpath servlet插件https docs stormpath com ja
  • 使用 Cygwin 的 Git 克隆项目时出现问题

    当我尝试使用 Cygwin 的 Git 2 7 0 克隆项目时 我遇到了一些与权限相关的问题 也就是说 每次我尝试运行克隆项目的可执行文件之一时 我都会收到下一个错误 Windows 无法访问指定的设备 路径或文件 您可能没有访问该项目的适
  • Hibernate java.lang.NoSuchMethodError: > org.hibernate.integrator.internal.IntegratorServiceImpl.

    在我的 jax rs 上使用 hibernate 我收到此错误 HTTP 错误 500 访问 services dateTest 时出现问题 原因 Server Error Caused by java lang ExceptionInIn
  • 字符串连接错误

    我遇到了语法错误 我承认这是一个语法错误 但我有点好奇why这是一个语法错误 这完全按照您的预期工作 0 9 each n puts n to s 2 n 2 to s 这会引发错误 0 9 each n puts n to s 2 n 2
  • 使用把手解释 html 字符串但转义脚本标签

    我为我的页面引入了一串 html 并且我认为除了脚本标记之外它是 html 安全的 我知道三重大括号会转义 html 那么省略任何脚本标签的步骤是什么 例子 var foo h1 Foo h1 p bar p 然后在我的 hbs 中 foo
  • Google Drive 实时和 Angular 魔法

    我正在观看 YouTube 视频作者 Steve Bazyl 关于驱动器实时 API 的介绍 他提到使用实时和角度框架就像魔法一样 我已经开始研究它会是什么样子 但我还没有看到它的魔力 我很清楚 我可能不是这两个方面的专家 并且遗漏了一些小