我试图返回旧窗口/移动到新窗口,但出现错误,以前工作正常,现在出现新错误
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();
});
请帮忙
最佳答案
首先,让我承认我使用 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 应用程序并查看代码。
/约翰
关于javascript - 未捕获的类型错误 : object is not a function when pressing back button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295461/