未捕获的TypeError:按下后退按钮时对象不是一个功能

时间:2015-05-18 05:06:47

标签: javascript titanium titanium-mobile

我正在尝试回到旧窗口/移动到新窗口但收到错误,之前它工作正常,直到现在出现新错误

Uncaught TypeError: object is not a function

这是我的代码:app.js

var win = Titanium.UI.createWindow({
title : 'my app',
backgroundColor : '#fff',
fullscreen : false,
navBarHidden : true,
layout : 'vertical'
 });

submitbtn.addEventListener('click', function(e) {

        var createnewWindowback = require('ui/page1');
        new createnewWindowback().open();
        win.close();
});

page1.js

var win = Titanium.UI.createWindow({
title : 'my app',
backgroundColor : '#fff',
fullscreen : false,
navBarHidden : true,
layout : 'vertical'
});
win.addEventListener('android:back', function(e) {
var createnewWindowback = require('app');
        new createnewWindowback().open();
        win.close();
});

Plz帮助

1 个答案:

答案 0 :(得分:1)

首先,我承认我使用Alloy代替我的所有窗口处理 - 所以这略有不同。但我确实使用CommonJS模块来实现我的所有逻辑。

基本上,如果你使用CommonJS模块,你需要把它放在" lib"项目中的文件夹。所以你所指的库应该是:

lib/ui/app.js
lib/ui/page1.js

为您的require语句找到它们。所以这可能是第一个检查的地方。

然后你必须告诉CommonJS模块你会让"外面"呼叫/"知"从你的模块内部。您将使用以下方法之一执行此操作:

exports.myMethod = function() {....}
module.exports = MyObject

只有在后一个示例中,您才能编写类似

的内容
new createnewWindowback().open();

很明显,如果不符合要求,您的代码将在此语句中失败: - )

接下来,你的"对象"将不得不实施一种方法" open()"它的工作原理。

我建议您查看Appcelerator University videos - 并下载Kitchen Sink应用程序并查看代码。

/约翰