1

我有一个类似 tweetEnyo 的组件,它是用 enyo 脚本创建的。并基于其种类,我想执行一些操作。

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

4

2 回答 2

3

您应该能够kind在运行时访问该属性。这是一个检测所选项目种类的示例:

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

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

enyo.$.app_myKind.kind

不要从即将发布的博客文章中抢走风头,但在 Chrome/Firefox 网络检查器中,$0 是最后一个检查的元素。所以,enyo.$[$0.id].kind是检查项目的种类。

我确实注意到在我的示例中 App 与它没有关联。确定为什么会这样。

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

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

于 2013-04-24T13:30:20.303 回答
0

来自 enyo 网站:

基础 enyo.Control 的工作方式很像 HTML 标记。您可以分配类和属性并为其赋予样式。例如

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/

于 2013-04-24T10:43:07.887 回答