DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
        • behaviors
          • ./base/
          • ./cache-requests/
          • ./can/constructor-hydrate/
          • ./can/map/
          • ./can/merge/
          • ./can/ref/
          • ./constructor/callbacks-once/
          • ./constructor/
          • ./constructor/store/
            • stores
              • addInstanceReference
              • addListReference
              • deleteInstanceReference
              • deleteListReference
              • instanceStore
              • listStore
              • moveCreatedInstanceToInstanceStore
            • CRUD callbacks
              • createdInstance
              • updatedList
            • CRUD methods
              • destroy
              • get
              • getList
              • save
            • hydrators
              • hydrateInstance
              • hydrateList
              • hydratedInstance
              • hydratedList
          • ./data/callbacks/
          • ./data/callbacks-cache/
          • ./data/combine-requests/
          • ./data/localstorage-cache/
          • ./data/memory-cache/
          • ./data/parse/
          • ./data/url/
          • ./data/worker/
          • ./fall-through-cache/
          • ./real-time/
        • modules
          • ./can/base-map/
          • ./can/model/
          • ./can/super-map/
          • ./can/tag/
          • ./helpers/map-deep-merge
          • ./helpers/weak-reference-map
        • data types
          • DataInterface
          • Instance
          • InstanceInterface
          • List
          • ListData
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

addListReference

  • Edit on GitHub

Add a reference to the listStore so a list can be easily looked up.

connection.addListReference( list[, set] )

Adds a reference to a list by set (or by listSet) to the listStore. Keeps a count of the number of references, removing the list from the store when the count reaches 0.

Parameters

  1. list {List}:

    the list to add

  2. set {Set}:

    the set this list represents if it can't be identified with listSet

Use

The listStore contains a mapping of lists keyed by their set. The listStore is used to prevent creating the same list multiple times and for identifying a list for a given set. Lists need to be added to this store for this to work. To do this, call addListReference:

// A basic connection:
var constructorStore = require("can-connect/constructor/store/");
var constructor = require("can-connect/constructor/");
var dataUrl = require("can-connect/data/url/");
var todoConnection = connect([dataUrl, constructorStore, constructor], {
  url: "/todos"
});

var dueToday;

// get a todo list
todoConnection.getList({due: "today"}).then(function( todos ){
  // add it to the store
  todoConnection.addListReference(todos, {due: "today"});
  dueToday = todos;
});

Now, if you were to retrieve the same set of data sometime later, it would be the same list instance:

todoConnection.get({due: "today"}).then(function( todos ){
  todos === dueToday //-> true
});

The .getListData response data (underlying the call to todoConnection.getList) is passed, along with the existing list (dueToday) to updatedList. That updates the shared list instance with the newly retrieved data.

All the referenced lists stay in memory. Use deleteListReference to remove them.

Typically, addListReference is called when something expresses interest in the list, such as an event binding, and deleteListReference is called when interest is removed.

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news