如何在钛合金控制器中调用超控功能

时间:2013-07-01 11:37:42

标签: titanium titanium-alloy

好吧所以我最近发现了如何使用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()函数填充。请帮助我,我已经打破了这个好几个小时了!

1 个答案:

答案 0 :(得分:1)

迟到但如果你调用$ .generateRows()它应该可以正常工作。