|
Bug出现步骤:
1. 创建新页面
2. 设置两个 BaaData,一个主,一个从,都添加过滤条件,autoload = false;
3. 在Model.prototype.modelParamsReceive 时间中设置过滤条件
4. 调用两个恐惧的refreshData() 函数
5. 设置嵌套List,分别指向两个数据控件
6. 在外层List所属的数据控件 AfterRefresh 事件中添加代码,打印记录数
7. 执行页面,发现AfterRefresh 被执行两次,第一次带有过滤条件,第二次不带过滤条件!
附源码:
define(function(require){
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var Model = function(){
this.callParent();
this.orderid = null;
};
Model.prototype.bdOrderAfterRefresh = function(event){
var order = this.comp("bdOrder");
console.log("demo.w: bdOrder.refreshed, records = " + order.count()); // 被执行两遍,第一遍带有过滤器,第二遍不带过滤器
};
Model.prototype.modelParamsReceive = function(event){
debugger;
this.orderid = 'C84975C7DFC00001397C128D12B6127B'; // event.params.orderid;
var filter = "orderid = '" + this.orderid + "'";
var order = this.comp("bdOrder");
var oitem = this.comp("bdOrderItem");
order.setFilter("fltOrder", filter);
oitem.setFilter("fltItem", filter);
order.refreshData(true);
oitem.refreshData(true);
};
Model.prototype.bdOrderItemAfterRefresh = function(event){
var item = this.comp("bdOrderItem");
console.log("demo.w: bdOrderItem.refreshed, records = " + item.count());
};
return Model;
}); |
|