如何知道enyo组件的“种类”?

时间:2013-04-24 10:12:58

标签: javascript enyo

我有一个像enetEnyo这样的组件,用enyo脚本创建。根据它的种类,我想做一些动作。

有没有办法在运行时找到在enyo中创建的组件类型?

2 个答案:

答案 0 :(得分:3)

您应该能够在运行时访问kind属性。以下是检测所选项目类型的示例:

http://jsfiddle.net/RoySutton/frTFK/

如果需要使用调试器找到它,可以将ID与全局enyo对象的$ hash一起使用。 e.g:

enyo.$.app_myKind.kind

不要从即将发布的博客文章中窃取雷声,但在Chrome / Firefox网络检查器中,$ 0是最后一次检查的元素。因此,enyo.$[$0.id].kind是被检查项目的种类。

我确实注意到App在我的例子中并没有与之相关。请问为什么会这样。

更新:App未以特定类型声明,并将回退到父级的默认类型,在本例中为Control。您可以使用.defaultKind访问该值。此外,您可以使用对该种类的实际引用来指定种类(例如种类:enyo.Button),因此无法依赖.kind

获取名称的正确方法是使用.kindName,这将是实际的类型。

答案 1 :(得分:0)

来自enyo网站:

  

基本enyo.Control的工作原理与HTML标记非常相似。你可以分配   类和属性,并赋予它一种风格。 E.g。

new enyo.Control({content: "Hello From Enyo", classes: "foo",
    style: "color: red", attributes: {tabIndex: 0}}).renderInto(document.body);

所以你可以这样做:

new enyo.Control({content: "Hello From Enyo", classes: "foo",
                  style: "color: red", attributes: {tabIndex: 0, enyo:true}}).renderInto(document.body);

将enyo的attr设置为true并检查它。任何有enyo组件的东西。

示例:http://jsfiddle.net/NKTRe/