apicloud修改数据,关闭页面后让前一个页面刷新 作者:马育民 • 2017-12-01 23:44 • 阅读:10525 **本文说的页面修改功能流程如下:** 1. 在文章详细页面中,点击修改按钮,打开修改页面,修改后关闭当前页面,返回文章详细页面,此时的数据还是修改前的数据, 2. 为了让文章详细页面的数据更新,当修改成功后发送事件,在修改页面中增加监听事件,当监听到刷新事件后,就查询数据库并更新页面 **道理说清楚后开始编码** ####修改页面: html代码 ```html 标题: 内容: ``` js代码 ```javascript var articleId; apiready = function(){ articleId=api.pageParam.id; showById(); }; function showById(){ var client = new Resource(APP_INFO.app_id, APP_INFO.app_key); var Model = client.Factory("article"); Model.get({"_id":articleId}, function(ret,err){ if(err){ //处理错误 err }else{ //处理数据 ret alert(JSON.stringify(ret)); $("#title").val(ret.title); $("#content").val(ret.content); $("#author").val(ret.creatorName); $("#viewNum").val(ret.viewNum); } }) } function update(){ var client = new Resource(APP_INFO.app_id, APP_INFO.app_key); var Model = client.Factory("article"); Model.save( {"_id":articleId}, { "title":$("#title").val(), "content":$("#content").val(), }, function(ret,err){ if(err){ //处理错误 err }else{ //处理数据 ret //alert(JSON.stringify(ret)); api.sendEvent({ name: 'article_detail_reload', extra: { id: articleId } }); api.closeWin({}); } }) } ``` 更新成功后就发送article_detail_reload事件 ####文章详细页面: 在[apicloud根据id进行查询-文章详细页面](http://www.malaoshi.top/show_1C744o9tyJ4.html "apicloud根据id进行查询")中的apiready函数中增加如下代码: ```javascript api.addEventListener({ name: 'article_detail_reload' }, function(ret, err) { //alert(JSON.stringify(ret)); if(ret){ //alert(ret.value.id);//注意封装在ret.value中 articleId=ret.value.id; showById(); } }); ``` 当监听到article_detail_reload事件后就再次调用showById()函数 原文出处:http://www.malaoshi.top/show_1EFA7j7bvxa.html