DoneJS StealJS jQuery++ FuncUnit DocumentJS
4.3.0
5.0.0 3.13.1 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-bind
      • can-compute
      • can-debug
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-backup
      • can-define-stream
      • can-define-stream-kefir
      • can-event-queue
      • can-kefir
      • can-list
      • can-map
      • can-map-define
      • can-observation
      • can-observation-recorder
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
      • can-value
    • Data Modeling
      • can-connect
        • behaviors
          • ./base/
          • ./cache-requests/
          • ./can/constructor-hydrate/
          • ./can/map/
          • ./can/merge/
          • ./can/ref/
          • ./constructor/callbacks-once/
          • ./constructor/
            • behavior options
              • instance
              • list
            • CRUD methods
              • destroy
              • get
              • getList
              • save
            • CRUD callbacks
              • createdInstance
              • destroyedInstance
              • updatedInstance
              • updatedList
            • hydrators
              • hydrateInstance
              • hydrateList
            • serializers
              • serializeInstance
              • serializeList
            • helpers
              • cidStore
              • isNew
          • ./constructor/store/
          • ./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/super-map/
          • ./can/tag/
          • ./helpers/map-deep-merge
          • ./helpers/weak-reference-map
        • data types
          • DataInterface
          • Instance
          • InstanceInterface
          • List
          • ListData
      • can-connect-feathers
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-stache
      • can-stache-bindings
      • can-stache-converters
      • can-stache-route-helpers
      • can-view-autorender
      • can-view-callbacks
      • 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-hash
      • can-route-mock
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-diff
      • can-globals
      • can-join-uris
      • can-key
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-queues
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-child-nodes
      • can-control
      • can-dom-data
      • can-dom-events
      • can-dom-mutate
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-fragment
    • 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-data-types
      • can-namespace
      • can-reflect
      • can-reflect-dependencies
      • 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

list

Behavior option provided to create a typed list from a raw array.

connection.list( listData, set )

Takes a listData argument with a data property, that is an array of typed instances, each produced by hydrateInstance, and returns a new typed list containing those typed instances. This method is passed as an option to the connection. Called by hydrateList.

Parameters

  1. listData {ListData}:

    an object with a data property, which is an array of instances.

  2. set {Set}:

    the set description of this list

Returns

{List}:

a typed list type containing the typed instances

Usage

The following example makes the connection produce MyList typed lists including a completed method:

var constructor = require("can-connect/constructor/");
var dataUrl = require("can-connect/data/url/");

// define custom list type constructor
var MyList = function(items) {
 this.push.apply(this, items);
}
// inherit Array functionality
MyList.prototype = Object.create(Array.prototype);
// add custom methods to new list type
MyList.prototype.completed = function(){
 return this.filter(function(){ return this.completed });
};

// create connection
var todosConnection = connect([constructor, dataUrl], {
  url: "/todos",
  list: function(listData, set){
    // create custom list instance
    var collection = new MyList(listData.data);
    // add set info for use by other behaviors
    collection.__listSet = set;
    return collection;
  }
});

// use connection to get typed list & use custom method
todosConnection.getList({}).then(function(todoList){
  console.log("There are", todoList.completed().length, "completed todos");
});

Note: we added the listSetProp property (__listSet by default) on the list. This is expected by other behaviors.

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

On this page

Get help

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