我正在编写一个模拟更改页面的简单脚本。
var square = $.UI.create('View',{page : info, classes : ["box"]});
square.addEventListener('click', function(e){
Ti.API.info(JSON.stringify({title:e.source.page.title,page : e.source.page.id,menu:true});
Ti.App.fireEvent('index:page',{title:e.source.page.title,page : e.source.page.id,menu:true});
});
在我写的另一个控制器中
Ti.App.addEventListener('index:page',startup);
var startup = function(data){
global_data = data;
Alloy.Collections.menu.fetch();
...
}
问题是当我点击“方形”按钮时,我得到了
Listener callback is of a non-supported type: NSNull
第Ti.API.info(JSON.stringify({title:e.source.page.title,page : e.source.page.id,menu:true});
行给了我{"title":"News","page":5,"menu":"true"}
不知道为什么。它看起来像我传递给启动函数的参数有空值,但输出并没有这么说。
有什么建议吗?
答案 0 :(得分:0)
问题是声明调用的顺序:
var startup = function(data){
global_data = data;
Alloy.Collections.menu.fetch();
...
};
Ti.App.addEventListener('index:page',startup);
而不是
Ti.App.addEventListener('index:page',startup);
var startup = function(data){
global_data = data;
Alloy.Collections.menu.fetch();
...
};