【问题标题】:View is not updating from other controller Appcelerator Alloy视图未从其他控制器 Appcelerator Alloy 更新
【发布时间】:2015-09-06 05:21:40
【问题描述】:

希望你一切安好。 我在 Titanium Appcelerator Alloy 中更新视图时遇到问题,

我基本上希望能够从选择器中删除以前的孩子,然后在选择器中添加新的孩子,该选择器位于我当前所在的不同控制器/视图中......

我关注了这个THIS SOLUTION 不幸的是这对我不起作用。这是我正在尝试的代码。

createEvent.js

Ti.App.addEventListener('db_update', function(){
   alert("OK");
   $.picker.removeAllChildren();
})

customParty.js

$.btnclick.addEventListener('click', function(){
    Ti.App.fireEvent('db_update');
});
 // OK alert shows up but the children of picker aren't removed. 

【问题讨论】:

    标签: android titanium-alloy appcelerator-mobile


    【解决方案1】:

    由于显示了 Ok Alert,您的方法很好,并且成功调用了回调函数。 这里的问题是调用removeAllChildren 方法不会从选择器中删除行。解决方案是遍历列并删除这样的行:

    Ti.App.addEventListener('db_update', function(){
       alert("OK");
       //get picker columns
       var columns=$.picker.getColumns();
       //Iterate over picker columns
       for (var it=0,length=columns.length;i<length;it++){
            //iterate over column rows
            if(columns[it]){
                 var len = col.rowCount;
                 for(var index=0,collength=columns[it].length;index<collength;index++){
                    //remove rows[index] of columns[it]
                    columns[it].removeRow(columns[it].rows[index]);
                 }
            }
       }
    });
    

    顺便说一句,Applcelerator 的人说使用全局事件(Ti.App 事件)可能会导致内存管理出现问题...

    请记住,应用级事件是全局性的,这意味着它们会在您的应用运行的整个过程中保持在上下文中(除非您将它们移除)。这也意味着它们引用的任何对象在您的应用程序运行时也将保留在范围内。这可以防止这些对象被垃圾回收。
    Appcelerator Documentation.

    另一种方法是使用全局函数:

    在您的第一个视图控制器中(定义了选择器):

    Alloy.Globals.removeAllPickerChildren=function(){
          //do what you want here
    };
    

    然后在第二个视图控制器中:

    $.btnclick.addEventListener('click', function(){
        if(Alloy.Globals.removeAllPickerChildren)
             Alloy.Globals.removeAllPickerChildren();
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2016-03-31
      • 2011-12-19
      相关资源
      最近更新 更多