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
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
        • options
          • signalR
        • methods
          • init
        • data interface
          • createData
          • destroyData
          • getData
          • getListData
          • updateData
      • 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

updateData

  • Edit on GitHub

Updates an instance on the server. This is invoked on an existing instance by calling [save].

updateData(instanceData)

Invokes the method specified by signalR.updateName or signalR.name+"Update" and expects the server to respond with the updated data.

connect([
  ...
  require("can-connect-signalr"),
  ...
], {
  signalR: {
    url: 'http://test.com', // URL of the SignalR server
    name: 'MessageHub', // Name of the SignalR hub,
    updateName: 'updateTheMessage'
  },
  Map: Message,
  ...
});

The following call to .save() invokes an updateTheMessage method on the MessageHub hub with the message's serialized data:

message.name = 'Brian';
message.save();
// calls MesageHub.updateTheMessage({
//   name: "Brian"
// })

It's expected the server responds with the message:

{
  "id": 2,
  "name": "Brian",
  "message": "Hello World"
}

The following signalR connection configurations call their corresponding Hubs and methods:

signalR: { name: 'MessageHub' } //-> MessageHub.updateMessageHub(message)
signalR: {
    name: 'MessageHub',
    updateName: "updateIt"
} //-> MessageHub.updateIt(message)
signalR: {
    updateName: "updateIt"
} //-> THROWS AN ERROR

Parameters

  1. instanceData {object}:

    The model to update.

Returns

{Promise<Object>}:

A promise that resolves to nothing.

Setup

If your SignalR hub conforms to the required interface (see can-connect-signalr), there is nothing you need to do to configure this method on the client. If the method name of the update end point on your SignalR hub deviates from the standard expected by can-connect-signalr, you can override can-connect-signalr's default naming by providing this property with the name expected by your SignalR hub.

signalR: {
  url: 'http://test.com', // URL of the SignalR server
  name: 'MessageHub' // Name of the SignalR hub,
  updateName: 'nameOfMethod'
}

You can call this method directly off of a connection:

connection.updateData(message);

CanJS Usage

If your connection is mixed in to a DefineMap (see can-connect-signalr), updateData can be called off of the DefineMap constructor function. Note that can-connect-signalr requires the method signatures defined on your hub to accept only one parameter. You can pass in multiple values by sending the method an object:

message.name = 'Brian';
message.save();

While updateData returns a Promise, that promise does not contain an instance of the updated object. That will be made available through the associated RPC listener, updatedData. This listener takes care of updating model instances or lists.

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