记账本(windowdialog)

1.activity的跳转:通过在页面添加一个windowdialog对象,在src属性绑定打开的页面。通过windowdialog对象的open()方法执行打开操作。跳转到的子页面可以通过this.owner()来获取主页面的windowdialog对象,获取到对象后可以通过对象的send(data)方法来回传数据。

 

2.跳转时传参:可以通过winddowdialog对象的open()方法来打开跳转页面的同时传递参数。已达到在相同的跳转动作来实现不同的效果,比如新增与修改。

    Model.prototype.addClick = function(event) {
        this.comp("windowDialog1").open({
            params : {
                operator: 'new'
            }
        });
    };

    Model.prototype.edit = function(event){
    var row = event.bindingContext.$object;              //这是一个模板代码,可以通过listrow + 提示键(alt + /)自动获取。
    this.comp("windowDialog1").open({              
            params : {
                operator: 'edit',
                rowData: row.toJson()
            }
        });
    };

 

3. 跳转页面获取从主页面跳转动作中的参数以及新增时系统自动生成ID等属性。

    Model.prototype.modelParamsReceive = function(event){
        var data = this.comp("accountData");
        data.clear();
        if(this.params.operator == 'new'){
            data.newData({                           //这是一个模板代码,可以通过newdata+ 提示键(alt + /)自动获取。
                "defaultValues" : [ {
                    "fId" : justep.UUID.createUUID(),   //注意字段是否与表的字段相同。
                    "fCreateTime" : new Date()
                } ]
            })
        }else{
            data.loadData([this.params.rowData]);    //接收json数据
            data.first();
        }
    };

 

4.将修改添加的数据保存到数据库中,否则数据在浏览器的一次刷新便失效了。在windowdialog的onReceived事件中来实现保存操作意为在mapping完成后调用该事件。

    Model.prototype.windowDialog1Received = function(event){
        this.comp("accountData").saveData();
    };

 

5.windowdialog的mapping设置。通过添加映射使主页面和弹出页面的数据的匹配对比。

posted @ 2017-10-17 11:01  halo-漾  阅读(600)  评论(0编辑  收藏  举报