improve docs
This commit is contained in:
parent
82ceecd290
commit
2177fbd446
1 changed files with 35 additions and 1 deletions
|
|
@ -487,7 +487,7 @@ where:
|
||||||
var demo = {}
|
var demo = {}
|
||||||
|
|
||||||
demo.controller = function() {
|
demo.controller = function() {
|
||||||
var users = m.request({method: "GET", url: "test.json", background: true, initialValue: []})
|
var users = m.request({method: "GET", url: "/api/users", background: true, initialValue: []})
|
||||||
users.then(m.redraw)
|
users.then(m.redraw)
|
||||||
return {users: users}
|
return {users: users}
|
||||||
}
|
}
|
||||||
|
|
@ -503,7 +503,41 @@ where:
|
||||||
```
|
```
|
||||||
|
|
||||||
It's strongly recommended that you set an `initialValue` option in ALL requests if you set the `background` option to true.
|
It's strongly recommended that you set an `initialValue` option in ALL requests if you set the `background` option to true.
|
||||||
|
|
||||||
|
When calling multiple background AJAX requests, it's recommended that you use [`m.sync`](mithril.sync.md) to batch redraw once at the end of all requests, as opposed to repeatedly redrawing after every request:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var demo = {}
|
||||||
|
|
||||||
|
demo.controller = function() {
|
||||||
|
var users = m.request({method: "GET", url: "/api/users", background: true, initialValue: []})
|
||||||
|
var projects = m.request({method: "GET", url: "/api/projects", background: true, initialValue: []})
|
||||||
|
|
||||||
|
m.sync([users, projects]).then(m.redraw)
|
||||||
|
|
||||||
|
return {users: users, projects: projects}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure to add null checks if your request value can be null
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var demo = {}
|
||||||
|
|
||||||
|
demo.controller = function() {
|
||||||
|
var user = m.request({method: "GET", url: "/api/users/1", background: true, initialValue: null})
|
||||||
|
user.then(m.redraw)
|
||||||
|
return {user: user}
|
||||||
|
}
|
||||||
|
|
||||||
|
demo.view = function(ctrl) {
|
||||||
|
return m("div", [
|
||||||
|
//in the first redraw, there's no user, so ensure we don't throw an error
|
||||||
|
ctrl.user ? ctrl.user.name : "no user"
|
||||||
|
])
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
- **any initialValue** (optional)
|
- **any initialValue** (optional)
|
||||||
|
|
||||||
The value that populates the returned getter-setter before the request completes. This is useful when using the `background` option, in order to avoid the need for null checks in views that may be attempting to access the returned getter-setter before the asynchronous request resolves.
|
The value that populates the returned getter-setter before the request completes. This is useful when using the `background` option, in order to avoid the need for null checks in views that may be attempting to access the returned getter-setter before the asynchronous request resolves.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue