paz*_*ero 3 javascript json couchdb pouchdb vue.js
我正在尝试创建简单的 Vue + CouchDB 应用程序。使用 Vanilla JS 可以正常工作,但我无法通过 Promise 或异步函数从数据库获取数据到我的 vue 实例。这是我的代码:
应用程序.html
<div id="vue-app">
<table>
<thead>
<tr>
<th>{{ tableHead.name }}</th>
<th>{{ tableHead.lastname }}</th>
</tr>
</thead>
<tbody>
<tr v-for="data in tableData">
<td>{{ data.name }}</td>
<td>{{ data.lastname }}</td>
</tr>
</tbody>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
应用程序.js
const db = new PouchDB('testdb')
const couch = {
fetchData: async function () {
var dbData = await db.allDocs({
include_docs: true,
descending: true
}).then(function (result) {
var objects = {}
result.rows.forEach(function (data) {
objects[data.id] = data.doc
})
return objects
}).catch(function(err) {
return err
})
return dbData
}
}
var app = new Vue({
el: '#vue-app',
data: {
tableHead: {
name: 'Name',
lastname: 'Lastname'
}
},
computed: {
async tableData () {
var dbData = await fetchData()
return dbData
}
}
})
Run Code Online (Sandbox Code Playgroud)
希望您能教我将数据获取到 Vue 实例的正确方法!
欢迎来到SO!
计算属性并不意味着是异步的。
解决数据异步检索的通常模式是:
data占位符created或mounteddata使用新内容更新内部。data在模板中使用内部。就您而言,您会:
tableData变成一个内部的data,就像你的tableHeadcouch.fetchData函数created。then链中(或等待之后),将tableData结果分配给您tableData(无需更改)例如,请参阅 Vue食谱以使用 Axios 使用 API
| 归档时间: |
|
| 查看次数: |
10911 次 |
| 最近记录: |