wex5 开发的页面,js的定义语法规则一般都是Model.prototype.方法名,这样的方法相互调用的时候直接使用this.方法() 即可
this 表示的就是model对象!
示例如下:
Model.prototype.test= function(){ this.comp('xid') ; this.getElementByXid('xid'); };
但是在一些特殊的情况下,比如回调方法中,或者js定义格式不是Model.prototype.方法名 ,而是自己定义的js对象,这个时候就不能直接写this.方法() 了
解决方法
1.在回调函数的外层重新定义一个变量,比如var me = this; 在回调函数中使用me.comp() 或me.getElementByXid
Model.prototype.test= function(){ var me = this; cordova.getAppVersion.getVersionNumber(function(){ var input = me.comp('input');//回调函数中的写法me.方法() }); };
2.在js的最外层定义变量var me; 和var justep = require(“$UI/system/lib/justep”);的定义并列 然后再Model构造函数中赋值 me= this;,这样全局都可以使用这个变量了!
var me; var Model = function(){ this.callParent(); me = this; };
评一波