本文介绍了查看是不是从其他控制器Appcelerator的合金更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望你将被罚款。
我有钛铝合金Appcelerator的,
我基本上希望从选择器能够删除previous孩子,然后在选择器是在不同的控制器/认为我目前在添加新的......
我跟了这这个解决方案可惜就是不为我工作。这里是code我想。
createEvent.js
Ti.App.addEventListener('db_update',函数(){
警报(OK);
$ .picker.removeAllChildren();
})
customParty.js
$。btnclick.addEventListener('点击',功能(){
Ti.App.fireEvent('db_update');
});
// OK警报显示出来,但选择器的孩子不会被删除。
解决方案
由于好吧警报显示,你在好的方法和回调函数调用成功。
这里的问题是,调用 removeAllChildren
方法不会从您选择器删除行。解决的办法是遍历colums和删除这种行:
Ti.App.addEventListener('db_update',函数(){
警报(OK);
//获取选择器列
。变种列= $ picker.getColumns();
//迭代选择器列
对于(VAR它= 0,长度= columns.length; I<长度,它++){
//遍历列行
如果(列[它]){
VAR LEN = col.rowCount;
对于(VAR指数= 0,collength =列[它]。长度;指数< collength;指数++){
//删除列的行[指数] [它]
列[它] .removeRow(列[它] .rows [指数]);
}
}
}
});
顺便说一句Applcelerator的乡亲们说,使用全局事件(Ti.App事件)可能会导致内存管理层的问题...
Another method is to use global functions:
In your first view controller (where picker is defined):
Alloy.Globals.removeAllPickerChildren=function(){
//do what you want here
};
then in the seconde viewcontroller:
$.btnclick.addEventListener('click', function(){
if(Alloy.Globals.removeAllPickerChildren)
Alloy.Globals.removeAllPickerChildren();
});
这篇关于查看是不是从其他控制器Appcelerator的合金更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!