【问题标题】:how to call overridden function in titanium alloy controller钛合金控制器中如何调用覆盖函数
【发布时间】:2013-07-01 11:37:41
【问题描述】:

好吧,我最近发现了如何使用exports.BaseController 在Alloy 控制器中继承和覆盖(如有必要)函数。所以现在我有了这个视图页面,其中包含一个动态生成行的表。这是下面的 xml 视图文件和关联的控制器文件(其中的一部分):

parentView.xml

<Alloy>
<Window id="currentWin">
    <LeftNavButton>
        <Button  id="backBtn" onClick="goBack"/>
    </LeftNavButton>
    <TitleControl>
        <Label id="titleLabel"/>
    </TitleControl>
    <TableView id="menuTable"/>
</Window>
</Alloy>

parentView.js

var dataArray = [];

var generateRows = function(){
//code to create a number of TableViewRow instances and push them into dataArray

};

exports.generateRows = generateRows;
generateRows();   //problem area

$.menuTable.setData(dataArray);

现在这是我用来继承上述 genrateRows 函数并覆盖其功能的控制器:

childView.js

exports.baseController = "parentView";

var generateMyRows = function() {
//code to create a number of TableViewRow instances and push them into dataArray
};
exports.generateRows = generateMyRows;

我对在childView.js 中使用exports.baseController 覆盖的理解是,当generateRows() 调用(问题区域)时,调用childView.js 的generateMyRows() 方法。然而,这种情况并非如此。 tableview 仍然被 parentView.js 的 generateRows() 函数填充。请帮帮我,我已经为此烦恼了好几个小时!

【问题讨论】:

    标签: titanium titanium-alloy


    【解决方案1】:

    有点晚了,但如果你调用 $.generateRows() 它应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多