Titanium - 在Alloy中动态创建和添加UI对象的最佳实践是什么

时间:2016-03-14 06:14:20

标签: appcelerator appcelerator-titanium appcelerator-alloy

我在我的应用上创建了一个表单并且已经过验证。如果发现某个字段无效,我会在字段上显示一个红色警告标志(它只是一个标签)。

因为我有很多字段,我创建了一个获取textfield对象的函数,使用我的样式进行Ti.UI.createLabel,并按接收的对象定位顶部和左边,并将其添加到页。

虽然这项工作非常完美,但我认为它可能不是"正确的"使用Alloy的方法。所以我想知道我是否应该创建一个Alloy视图(不需要控制器,因为那里没有逻辑),并且该视图将具有固定样式的标签(只是标签!)和tss文件,然后查看" Alloy方式"并将其添加到页面?

在这种情况下,最佳做法是什么?我还认为合金会添加它自己的控制器代码并在内部创建标签,就像我现在一样 - 所以它为js引擎增加了额外的动作来执行?性能和内存消耗当然是我主要关注的问题。

1 个答案:

答案 0 :(得分:1)

我认为使用Alloy方式可以更好地进行代码维护。之后,如果您想修改您的标签,您只需要编辑您的TSS。在性能方面,我不是一个很大的区别(它只是一个标签),XML视图最终转换为Ti.UI.create。

如果没有要实现的JS逻辑,可以使用$ .UI.create方法将TSS类应用于元素:http://docs.appcelerator.com/platform/latest/#!/api/Alloy.Controller.UI-method-create

var label = $.UI.create("Label", {
    classes: 'yourstyle',
    top : 30 //add other property like this
});
$.index.add(label);