javascript - 从 javascript 获取变量,并将其转换为 xsl

标签 javascript xslt extjs

在我的 .xsl 文件中,我有以下代码:

 importantMsg = null;
<script type="text/javascript"> 
    $.getScript("std/lamFile.js").done(function(script, successOrFail, exept) {
        importantMsg = getMessage();

    });
</script>


isoNS.PanelQ<xsl:value-of select="@CHECKID"/>Pensl = new Ext.Panel

({<xsl:if test="@CHECKID=9051">     
    items: [
        {
            xtype: 'label',         
            id: 'attentionLabel',
            width: 200,
            style: 'margin: 100px 0px 0px 24%;',            
            text: importantMsg    <---------------- variable goes Here
        } 
    ]
    </xsl:if>
});

我加载一个js文件,然后调用getMessage方法,该方法返回一个字符串。正如您在代码中看到的那样,我将这个字符串称为 importantMsg。现在我想在 extjs 代码中使用这个字符串,其中有标签 xtype。但这里并没有设置 importantMsg,它只是未定义。所以我想我应该使用 xsl 来获取它?我怎样才能做到这一点?

奇怪的是,如果我在创建 Ext.Panel 之前编写 alert("");,那么 importantMsg 将被插入。

非常感谢任何帮助

最佳答案

我认为这与 XSLT 没有任何关系。 XSLT 正在生成 javascript 文本,但是当 javascript 运行时,XSLT 早已被遗忘。他们之间没有互动。

我猜问题是 jquery 函数 $.getScript 函数是异步的,当前用于查看 new Ext.Panel 的代码在 之前运行>$.getScript 完成。 (有了警报,这确实允许 $.getScript 完成,因此它似乎可以工作)。

解决方案可能是重新排序语句,因此通过$.getScript的回调函数来设置text属性。

类似这样的事情...

importantMsg = null;

isoNS.PanelQ<xsl:value-of select="@CHECKID"/>Pensl = new Ext.Panel

({<xsl:if test="@CHECKID=9051">     
    items: [
        {
            xtype: 'label',         
            id: 'attentionLabel',
            width: 200,
            style: 'margin: 100px 0px 0px 24%;',            
            text: importantMsg    <---------------- variable goes Here
        } 
    ]
    </xsl:if>
});

<script type="text/javascript"> 
    $.getScript("std/lamFile.js").done(function(script, successOrFail, exept) {
        importantMsg = getMessage();
        <xsl:if test="@CHECKID=9051">     
           isoNS.PanelQ<xsl:value-of select="@CHECKID"/>Pensl.items[0].text = importantMsg;
        </xsl:if>
    });
</script>

关于javascript - 从 javascript 获取变量,并将其转换为 xsl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780119/

相关文章:

javascript - 在 IE 中使用 => 语法错误

XSLT 3.0 动态选择应用模板中的变量?

java - 我们有撒克逊特定的 Transformer 类吗?

javascript - 仅在需要时使用 Ext.onReady 加载 Ext.JS4

javascript - 单例菜单面板在 extjs 5 中不起作用

extjs - 如何将公式与 Sencha ExtJs v6 中的商店正确绑定(bind)?

javascript - 表单复选框的替代背景颜色

javascript - jQuery .append 不适用于 .submit

javascript - 使用 jQuery datepicker 和 PHP 时出现 undefined variable 错误

ruby - 在 Ruby (XSLT 2.0) 中执行 XSL 转换的最佳方式