1.shoppingcart.html
function fnOpenOrderWin () {
api.execScript({
name: 'shoppingcart',
frameName: 'shoppingcart_frame',
script: 'fnSaveOrder();'
});
fnRealOpenOrderWin();
}
function fnRealOpenOrderWin(){
api.execScript({
name: 'shoppingcart',
frameName: 'shoppingcart_frame',
script: 'fnOpenOrderWin();'
});
}
2.shoppingcart_frame.html
function fnSaveOrder(){
//alert( JSON.stringify( curShoppingCart ) );
api.ajax({
url: 'https://d.apicloud.com/mcm/api/orderInfo',
method: 'post',
headers: {
"X-APICloud-AppId": "A6000926714852",
"X-APICloud-AppKey":"5fe9e06dfbe11c046d6e760665bd6b335d6173b6.1556419150650"
}
},function(ret, err){
if (ret) {
//alert( JSON.stringify( ret ) );
$api.setStorage('orderInfoId', ret.id);
fnForSaveOrder(ret.id);
} else {
alert("创建orderInfo失败!");
}
});
}
//由于for循环不能和异步函数在同一个函数中,所以将saveOrder分成两部分
function fnForSaveOrder(orderId_){
for(var i=0;i
if(curShoppingCart[i].wareState == 'on')
{
fnSaveToOrder(curShoppingCart[i],orderId_);
}
}
}
//由于for循环中不能嵌套异步函数,将saveOrder函数分成三部分
function fnSaveToOrder(data_,orderId_){
var userInfo = $api.getStorage('userInfo');
//alert(orderId_);
api.ajax({
url: 'https://d.apicloud.com/mcm/api/order',
method: 'post',
headers: {
"X-APICloud-AppId": "A6000926714852",
"X-APICloud-AppKey":"5fe9e06dfbe11c046d6e760665bd6b335d6173b6.1556419150650",
},
data: {
values: {
"number": data_.wareCount,
"type":0,
"buyer":userInfo.id,
"seller":data_.owner,
"ware":data_.id,
"orderInfo"
rderId_
}
}
},function(ret, err){
if (ret) {
//alert( JSON.stringify( ret ) );
} else {
alert("创建order失败!");
}
});
}
function fnOpenOrderWin(){
//alert(curShoppingCart.length);
api.openWin({
name: 'order',
url: './order.html',
pageParam: {
amount:amount,
number:number
}
});
}
3.order.html
function fnBuy () {
api.toast({
msg: '支付成功',
duration: 2000,
location: 'bottom'
});
var params = {
fields: {},
where: {
orderInfo: $api.getStorage('orderInfoId')
},
skip:0,
limit: api.pageParam.number
};
params = $api.jsonToStr(params);
api.ajax({
url: 'http://d.apicloud.com/mcm/api/order?filter=' + params,
method: 'get',
headers: {
"X-APICloud-AppId": "A6000926714852",
"X-APICloud-AppKey":"5fe9e06dfbe11c046d6e760665bd6b335d6173b6.1556419150650"
}
},function(ret, err){
if (ret) {
//alert( JSON.stringify( ret ) );
fnForChangeType(ret);
} else {
alert( JSON.stringify( err ) );
}
});
}
function fnForChangeType(data_){
for(var i=0;i
fnChangeType(data_[i]);
}
}
function fnChangeType(data_){
api.ajax({
url: 'https://d.apicloud.com/mcm/api/order/' + data_.id,
method: 'put',
headers: {
"X-APICloud-AppId": "A6000926714852",
"X-APICloud-AppKey":"5fe9e06dfbe11c046d6e760665bd6b335d6173b6.1556419150650",
},
data: {
values: {
type: 1
}
}
},function(ret, err){
if (ret) {
//alert( JSON.stringify( ret ) );
} else {
alert( JSON.stringify( err ) );
}
});
}
4.order_frame.html
function fnGetOrderInfo(){
//alert( JSON.stringify( api.pageParam ) );
var orderInfo_ = $api.getStorage('orderInfoId');
var params = {
fields: {},
where: {
orderInfo: orderInfo_
},
skip:0,
limit: api.pageParam.number,
include: ['warePointer']
};
params = $api.jsonToStr(params);
api.ajax({
url: 'http://d.apicloud.com/mcm/api/order?filter=' + params,
method: 'get',
headers: {
"X-APICloud-AppId": "A6000926714852",
"X-APICloud-AppKey":"5fe9e06dfbe11c046d6e760665bd6b335d6173b6.1556419150650"
}
},function(ret, err){
if (ret) {
//alert( JSON.stringify( ret ) );
fnUpdateOrderList(ret);
} else {
alert( JSON.stringify( err ) );
}
});
}
function fnUpdateOrderList(data_){
var list = $api.byId('list');
// 编译模板函数
var tempFn = doT.template($api.byId('template').innerHTML);
// 使用模板函数生成HTML文本
var resultHTML = tempFn(data_);
list.innerHTML = resultHTML;
}
简单介绍一下。在shoppingcart.html中点击一个按钮触发execscript运行shoppingcart_frame.html中的函数,来打开order.html并传参,同时在数据库中创建了数据,然后再查询这些数据并显示在order_frame中。
amount这个参数可以传但number这个参数传不了,一直是undefined,但是使用localStorage来存储之后,number是可以正常显示了,但是点击order中的按钮时又不能进行ajax修改操作了(一直显示网络超时,调timeout也没用)。
并且,无论是用哪种方式传number,order_frame中总是进行不了ajax查询操作(也是网络超时,同上怎么改都没用)。但是如果之前有过一次同样的操作,就可以正常显示。
请问下大神这到底是咋回事。。头有点晕了已经。。逻辑应该都没错。