如何在运行时检测到ember应用程序

时间:2015-07-15 17:09:34

标签: ember.js

我正在尝试找到一种更好的检测ember应用程序的方法,而不是搜索<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="a[@ref='style1' or @ref='style2']" priority="1"> <a ref="style"> <xsl:apply-templates select="@*"/> <xsl:attribute name="id"> <xsl:number count="a[@ref=('style1','style2')]"/> </xsl:attribute> <xsl:next-match/> </a> </xsl:template> <xsl:template match="a[@ref='style1']"> <special>processed style1</special> </xsl:template> <xsl:template match="a[@ref='style2']"> <special>processed style2</special> </xsl:template> </xsl:stylesheet> ember-application

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,没有保证检测Ember或Ember应用程序的方法。 Javascript相当具有可塑性,所以你可以在页面上找不到。

要检测Ember,只需检查window.Ember。这里没什么好看的,它几乎是唯一知道的方式(直到Ember不再是全球化的)。我会说这适用于大多数场景(Ember全局和Ember CLI应用程序)。

检测Ember应用程序要困难得多。我最后一次检查时,Ember Inspector通过使用window检查Ember.Application.detectInstance()对象上的每个属性来执行此操作。然而,随着Ember CLI越来越受欢迎,它将不再适用于大部分时间。 也许您可以覆盖Ember.Application.create()并跟踪实例?

无论如何,我当然不会依赖于能够做到这些中的任何一个。这根本不可行。