@convergence/convergence
Version:
Convergence JavaScript Client
719 lines • 88.5 kB
HTML
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>RealTimeObject | Convergence JavaScript Client API Documentation</title>
<meta name="description" content="Documentation for Convergence JavaScript Client API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/ico" href="https://convergence.io/assets/img/favicon/favicon.ico" sizes="48x48">
<link rel="icon" type="image/png" href="https://convergence.io/assets/img/favicon/favicon-96x96.png" sizes="96x96">
<!-- Start of convergencelabs Zendesk Widget script -->
<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=3ee5157d-2fc2-4b08-b6c7-d5fad0533179"> </script>
<!-- End of convergencelabs Zendesk Widget script -->
</head>
<body>
<header>
<div class="tsd-page-toolbar convergence-header">
<div class="container">
<div class="flex-content">
<a href="../index.html" class="header-brand">
<img src=../assets/images/convergence-logo.png />
<span class="brand-title brand-copy">Convergence JavaScript Client API Documentation</span>
<span class="version">1.0.0-rc.12</span>
</a>
<div class="links brand-copy">
<div class="link">
<a href="https://docs.convergence.io/guide/">Dev Guide</a>
</div>
<div class="link">
<a href="https://examples.convergence.io">Examples</a>
</div>
<div class="link">
<a href="https://convergence.io/support/">Support</a>
</div>
</div>
</div>
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../globals.html">Index</a>
</li>
<li>
<a href="../modules/real_time_data.html">Real Time Data</a>
</li>
<li>
<a href="real_time_data.realtimeobject.html">RealTimeObject</a>
</li>
</ul>
<h1>Class RealTimeObject</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>A distributed Object (in Javascript, a set of key-value pairs). This extends the
functionality of the
<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Javascript Object</a>
prototype methods.</p>
</div>
<p>See <a href="../interfaces/real_time_data.realtimeobjectevents.html">RealTimeObjectEvents</a> for the many events that may be emitted on remote changes
to this underlying data of this object.</p>
<p>Also see the <a href="https://docs.convergence.io/guide/models/data/real-time-object.html">developer guide</a>
for examples of some of the most common use cases.</p>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol">></span>
<ul class="tsd-hierarchy">
<li>
<span class="target">RealTimeObject</span>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel">
<h3>Implements</h3>
<ul class="tsd-hierarchy">
<li><a href="../interfaces/real_time_data.observableelement.html" class="tsd-signature-type">ObservableElement</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol">></span></li>
<li><a href="../interfaces/real_time_data.realtimecontainerelement.html" class="tsd-signature-type">RealTimeContainerElement</a><span class="tsd-signature-symbol"><</span><span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol">></span></li>
<li><a href="../interfaces/real_time_data.observableobject.html" class="tsd-signature-type">ObservableObject</a></li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-static"><a href="real_time_data.realtimeobject.html#events" class="tsd-kind-icon">Events</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#addlistener" class="tsd-kind-icon">add<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#elementat" class="tsd-kind-icon">element<wbr>At</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#events-1" class="tsd-kind-icon">events</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#foreach" class="tsd-kind-icon">for<wbr>Each</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#get" class="tsd-kind-icon">get</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#haskey" class="tsd-kind-icon">has<wbr>Key</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#id" class="tsd-kind-icon">id</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#isattached" class="tsd-kind-icon">is<wbr>Attached</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#isdetached" class="tsd-kind-icon">is<wbr>Detached</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#keys" class="tsd-kind-icon">keys</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#model" class="tsd-kind-icon">model</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#off" class="tsd-kind-icon">off</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#on" class="tsd-kind-icon">on</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#once" class="tsd-kind-icon">once</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#parent" class="tsd-kind-icon">parent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#path" class="tsd-kind-icon">path</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#propertyreference" class="tsd-kind-icon">property<wbr>Reference</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#reference" class="tsd-kind-icon">reference</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#references" class="tsd-kind-icon">references</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#relativepath" class="tsd-kind-icon">relative<wbr>Path</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#remove" class="tsd-kind-icon">remove</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#removealllisteners" class="tsd-kind-icon">remove<wbr>All<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#removefromparent" class="tsd-kind-icon">remove<wbr>From<wbr>Parent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#removelistener" class="tsd-kind-icon">remove<wbr>Listener</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#removelisteners" class="tsd-kind-icon">remove<wbr>Listeners</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="real_time_data.realtimeobject.html#set" class="tsd-kind-icon">set</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#tojson" class="tsd-kind-icon">toJSON</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#type" class="tsd-kind-icon">type</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="real_time_data.realtimeobject.html#value" class="tsd-kind-icon">value</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-static">
<a name="events" class="tsd-anchor"></a>
<h3>Events</h3>
<div class="tsd-signature tsd-kind-icon">Events<span class="tsd-signature-symbol">:</span> <a href="../interfaces/real_time_data.realtimeobjectevents.html" class="tsd-signature-type">RealTimeObjectEvents</a><span class="tsd-signature-symbol"> = ObservableObjectEventConstants</span></div>
<aside class="tsd-sources">
<p>Overrides <a href="real_time_data.realtimeelement.html">RealTimeElement</a>.<a href="real_time_data.realtimeelement.html#events">Events</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>A mapping of the events this array could emit to each event's unique name.
Use this to refer an event name, e.g.</p>
</div>
<pre><code class="language-typescript">rtObj.on(RealTimeObject.Events.SET, <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">listener</span>(<span class="hljs-params">e</span>) </span>{
<span class="hljs-comment">// ...</span>
})
</code></pre>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="addlistener" class="tsd-anchor"></a>
<h3>add<wbr>Listener</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">add<wbr>Listener<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#addlistener">addListener</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#addlistener">addListener</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a new event listener for the specified event. The class will ignore
duplicate registrations of the same listener to the same event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="elementat" class="tsd-anchor"></a>
<h3>element<wbr>At</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">element<wbr>At<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></li>
<li class="tsd-signature tsd-kind-icon">element<wbr>At<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>elements<span class="tsd-signature-symbol">: </span><a href="../modules/real_time_data.html#pathelement" class="tsd-signature-type">PathElement</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#elementat">elementAt</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Given a search path, returns the <a href="real_time_data.realtimeelement.html">RealTimeElement</a> at that path, or null if
no such element exists. Scoped to this object, so the first element in the given
path should be a string (representing an existing key)</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a></h5>
<div class="tsd-comment tsd-typography">
<p>the search path for accessing a node within this object</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></h4>
<p>The <a href="real_time_data.realtimeelement.html">RealTimeElement</a> at the given path, or null if no such element exists</p>
</li>
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#elementat">elementAt</a></p>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-signature-symbol">...</span>elements: <a href="../modules/real_time_data.html#pathelement" class="tsd-signature-type">PathElement</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="events-1" class="tsd-anchor"></a>
<h3>events</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">events<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Observable</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#events">events</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#events">events</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provides the events emitted by this object as an Observable stream.</p>
</div>
<dl class="tsd-comment-tags">
<dt>example</dt>
<dd><pre><code class="language-typescript">
eventEmitter.events()
.filter(<span class="hljs-function"><span class="hljs-params">e</span> =></span> e.name === <span class="hljs-string">"myevent"</span>)
.subscribe(<span class="hljs-function"><span class="hljs-params">e</span> =></span> <span class="hljs-built_in">console</span>.log(e));
</code></pre>
</dd>
</dl>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Observable</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> An Observable stream of all events emitted by this object.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="foreach" class="tsd-anchor"></a>
<h3>for<wbr>Each</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">for<wbr>Each<span class="tsd-signature-symbol">(</span>callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span>model<span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Synchronously calls the provided callback function for each key-value pair in
this object. Curiously, no such method is provided in native Javascript.</p>
</div>
<pre><code class="language-typescript">rtObj.value() <span class="hljs-comment">// {'firstName': 'Jimbo', 'lastName': 'McGee'}</span>
rtObj.forEach(<span class="hljs-function">(<span class="hljs-params">rtString, key</span>) =></span> {
<span class="hljs-built_in">console</span>.log(<span class="hljs-string">'My'</span>, key, <span class="hljs-string">'is'</span>, rtString.value())
})
<span class="hljs-comment">// My firstName is Jimbo</span>
<span class="hljs-comment">// My lastName is McGee</span>
</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>callback: <span class="tsd-signature-symbol">(</span>model<span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> => </span><span class="tsd-signature-type">void</span></h5>
<div class="tsd-comment tsd-typography">
<p>a function to be called for each key-value pair in this object</p>
</div>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>model<span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a>, key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>model: <a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></h5>
</li>
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="get" class="tsd-anchor"></a>
<h3>get</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#get">get</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the <a href="real_time_data.realtimeelement.html">RealTimeElement</a> at the given key. Analogous to the object accessor
syntax in javascript, e.g. <code>users['firstName']</code> would be the same as <code>rtUsers.get('firstName')</code>.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the key whose value is desired</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.realtimeelement.html" class="tsd-signature-type">RealTimeElement</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="haskey" class="tsd-anchor"></a>
<h3>has<wbr>Key</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">has<wbr>Key<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#haskey">hasKey</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns true if a value exists at the given key, even if the value is <code>null</code>.
Analagous to the Javascript object
<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty">hasOwnProperty</a>
method.</p>
</div>
<pre><code class="language-typescript">rtObj.value() <span class="hljs-comment">// {'firstName': 'Jimbo', 'title': null}</span>
rtObj.hasKey(<span class="hljs-string">'firstName'</span>) <span class="hljs-comment">// true</span>
rtObj.hasKey(<span class="hljs-string">'title'</span>) <span class="hljs-comment">// true</span>
rtObj.hasKey(<span class="hljs-string">'age'</span>) <span class="hljs-comment">// false</span>
</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>the key whose existence is being requested</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
<p>true if a value exists</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="id" class="tsd-anchor"></a>
<h3>id</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#id">id</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#id">id</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Each node within a <a href="real_time_data.realtimemodel.html">RealTimeModel</a> has a system-generated ID that is unique
within this model's contents.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
<p>a unique (to the model) ID for this element</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="isattached" class="tsd-anchor"></a>
<h3>is<wbr>Attached</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">is<wbr>Attached<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#isattached">isAttached</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#isattached">isAttached</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>True if the element is currently set up to synchronize with the server.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="isdetached" class="tsd-anchor"></a>
<h3>is<wbr>Detached</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">is<wbr>Detached<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#isdetached">isDetached</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#isdetached">isDetached</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>True if the element is no longer synchronizing with the server. See the
<a href="https://docs.convergence.io/guide/models/data/real-time-elements.html">developer guide</a>
for more information.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="keys" class="tsd-anchor"></a>
<h3>keys</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">keys<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#keys">keys</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns an array consisting of all this object's keys. Analogous to the Javascript
<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys">Object.keys</a>
method.</p>
</div>
<pre><code class="language-typescript">rtObj.value() <span class="hljs-comment">// {'firstName': 'Jimbo', 'lastName': 'McGee'}</span>
rtObj.keys() <span class="hljs-comment">// ['firstName', 'lastName']</span>
</code></pre>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h4>
<p>an array with all of this object's keys</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="model" class="tsd-anchor"></a>
<h3>model</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">model<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.realtimemodel.html" class="tsd-signature-type">RealTimeModel</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#model">model</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#model">model</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the model to which this element belongs.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="real_time_data.realtimemodel.html" class="tsd-signature-type">RealTimeModel</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="off" class="tsd-anchor"></a>
<h3>off</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">off<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#off">off</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#off">off</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Removes a single event listener for a specific event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to remove the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to unregister.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="on" class="tsd-anchor"></a>
<h3>on</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">on<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#on">on</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#on">on</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a new event listener for the specified event. The class will ignore
duplicate registrations of the same listener to the same event.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="once" class="tsd-anchor"></a>
<h3>once</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">once<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, listener<span class="tsd-signature-symbol">: </span><a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#once">once</a></p>
<p>Inherited from <a href="convergenceeventemitter.html">ConvergenceEventEmitter</a>.<a href="convergenceeventemitter.html#once">once</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds a single shot event listener for the specified event. The listener
will be called the first time the specified event is fired after the
event registration occurs, after which the registration will be removed
and no further events will be passed to the listener.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p> The name of the event to add the listener for.</p>
</div>
</li>
<li>
<h5>listener: <a href="../globals.html#convergenceeventlistener" class="tsd-signature-type">ConvergenceEventListener</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h5>
<div class="tsd-comment tsd-typography">
<p> The listener callback to register.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="convergenceeventemitter.html" class="tsd-signature-type">ConvergenceEventEmitter</a><span class="tsd-signature-symbol"><</span><a href="../interfaces/iconvergenceevent.html" class="tsd-signature-type">IConvergenceEvent</a><span class="tsd-signature-symbol">></span></h4>
<p> This object, in support of a fluent API.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="parent" class="tsd-anchor"></a>
<h3>parent</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">parent<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/real_time_data.realtimecontainerelement.html" class="tsd-signature-type">RealTimeContainerElement</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#parent">parent</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#parent">parent</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the parent of this element within the model.</p>
</div>
</div>
<h4 class="tsd-returns-title">Returns <a href="../interfaces/real_time_data.realtimecontainerelement.html" class="tsd-signature-type">RealTimeContainerElement</a></h4>
<p>the parent of this element, or <code>this</code> if this is the root element</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="path" class="tsd-anchor"></a>
<h3>path</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/real_time_data.observableobject.html">ObservableObject</a>.<a href="../interfaces/real_time_data.observableobject.html#path">path</a></p>
<p>Inherited from <a href="real_time_data.realtimearray.html">RealTimeArray</a>.<a href="real_time_data.realtimearray.html#path">path</a></p>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The <a href="../modules/real_time_data.html#path">Path</a> representing this element's location in the containing model's data.
For instance, with model data</p>
</div>
<pre><code class="language-json">{
user: {
age: 32
}
}
</code></pre>
<p>The <a href="real_time_data.realtimenumber.html">RealTimeNumber</a> representing <code>32</code> would have path <code>['user', 'age']</code>.</p>
</div>
<h4 class="tsd-returns-title">Returns <a href="../modules/real_time_data.html#path" class="tsd-signature-type">Path</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="propertyreference" class="tsd-anchor"></a>
<h3>property<wbr>Reference</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">property<wbr>Reference<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="real_time_data.localpropertyreference.html" class="tsd-signature-type">LocalPropertyReference</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">