本文介绍了查看是不是从其他控制器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的合金更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 20:23