我正在尝试找到一种更好的检测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
。
有什么想法吗?
答案 0 :(得分:2)
不幸的是,没有保证检测Ember或Ember应用程序的方法。 Javascript相当具有可塑性,所以你可以在页面上找不到。
要检测Ember,只需检查window.Ember
。这里没什么好看的,它几乎是唯一知道的方式(直到Ember不再是全球化的)。我会说这适用于大多数场景(Ember全局和Ember CLI应用程序)。
检测Ember应用程序要困难得多。我最后一次检查时,Ember Inspector通过使用window
检查Ember.Application.detectInstance()
对象上的每个属性来执行此操作。然而,随着Ember CLI越来越受欢迎,它将不再适用于大部分时间。 也许您可以覆盖Ember.Application.create()
并跟踪实例?
无论如何,我当然不会依赖于能够做到这些中的任何一个。这根本不可行。