javascript - 未捕获的类型错误 : object is not a function when pressing back button

标签 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();
});

请帮忙

最佳答案

首先,让我承认我使用 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/

相关文章:

JavaScript:什么是 PHP 的 "$this->$somefunc()"的等价物?

javascript - 将 `enter` selectin 合并到 `update` selections

javascript - innerHTML 适用于 body 元素,但不适用于 p 元素

ios - Titanium studio 3.2.0 设备上的项目安装问题

android - 如何在钛合金中向通知添加声音

android - 应用程序无法在 Android 模拟器上运行

javascript - iOS7 Titanium 上的崩溃问题

javascript - 在 PHP 中发布选项文本而不是值

android - 钛安卓 : How to animate a modal window?

java - Titanium Studio 无法创建新项目