我有一个像enetEnyo这样的组件,用enyo脚本创建。根据它的种类,我想做一些动作。
有没有办法在运行时找到在enyo中创建的组件类型?
答案 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组件的东西。