我已经开始遵循Appcelerator文档中的"创建您的第一个Titanium应用程序"教程,但我遇到了一些问题。
首先,我认为这更多的是医生的问题,但我仍然想确认我没有遗漏什么。在"创建图书详细信息视图"步骤中,它表示要创建一个名为bookdetails的控制器。然而,在所有后续步骤中,它将控制器称为bookview,例如:
var bookview = Alloy.createController("bookview", args).getView();
完全按照教程中所写的方式输入所有内容会导致应用程序错误,说明某个未定义的控制器"bookview",自然地,当将其更改为匹配时,一切都很好(见下文)。
第二,在"修复"了上述问题后,单击一个表行会转到一个新页面,但上面什么都没有,只有一个空白的白色页面。我在调试器中看不到任何问题,而且再次输入的所有内容都与教程中显示的完全一样,甚至只是复制和粘贴。不确定这里发生了什么。
根据我有限的经验,bookview控制器中似乎没有任何内容告诉视图显示提取的变量。bookview.js中唯一的一行是
var args = arguments[0] || {};
它是由Titanium生成的,在教程中没有受到影响。我真的不明白这里发生了什么逻辑。变量arguments
在哪里定义?它是由createController
函数中第二个参数的参数填充的全局变量吗?即使是这样,视图如何知道在哪里显示以及显示什么?视图是否应该指定类似于具有{title}
的索引视图的输出变量?
如果我能搞清楚API,我也许能自己解决这个问题,但我甚至找不到open()
之类函数的条目。
最后,我对.tss语法有点困惑。为什么有些定义和其他定义之间用逗号分隔?这是对某些定义进行分组的一种方式吗?目的是什么?
另外,有人知道我是否可以从某个地方下载教程源文件吗?
不幸的是,创建您的第一个Titanium应用程序现在很麻烦(2014年2月20日)。
你可以从这里得到一个工作的例子。
您在一条巨大的消息中提出了多个问题。很难解决所有这些问题,对其他用户也没有用处。下面是一些问题的快速答案,但下次请单独提问。
1.参数
var args = arguments[0] || {}
是Alloy中使用特殊JavaScript变量arguments
检索传递给控制器的参数的常用方法。链接到MDN文档应该对此进行解释。代码示例:
index.js:
Alloy.createController("bookview", { title: "Design Patterns" });
bookview.js:
var args = arguments[0] || {};
alert(args.title); // 'Design Patterns'
2.TSS文件
TSS是JSON和CSS文件之间的一个有点疯狂的组合。如果你不确定如何在其中使用逗号,请确保将其放在每一行的末尾。
3.API参考
这里是Alloy API参考。此外,Titanium SDK有很多代码示例,说明如何使用纯钛和合金的不同方法。如果你刚开始学习钛和合金,最好一个接一个地学习所有的钛和合金课程:首先学习它在钛中的工作原理,然后尝试使用合金框架重写整个代码。