首页 > 解决方案 > 尝试将 javascript 按钮转换为闪电组件

问题描述

我无法使用转换器转换 Java 按钮

我尝试使用 Lightning Experience 配置转换器将 java 按钮转换为 Lightning 组件(完整),但每次(我生活在生产中),我都会收到此错误“由于超时,我们无法将一些元数据部署到您的组织”由于我可以预览组件和控制器代码,我相信我可以简单地将其复制到沙箱然后推送。

创建组件时出现错误(复制代码-Developer Console-New Lightning 组件),创建控制器时出现其他错误-New-Apex 类..

我插入了转换器提供的代码图像和原件(组件、控制器和原件)

它旨在为点击时的铭文分配一个唯一的订单号。

零件

控制器

原始 Java 按钮代码

控制器

({
    apexExecute : function(component, event, helper) {
        //Call Your Apex Controller Method.
        var action = component.get("c.updateOrderNumber");

        action.setParams({
            'inscriptionId': ''+component.get('v.sObjectInfo.Id')+''
        });

        action.setCallback(this, function(response) {
            var state = response.getState();
            console.log(state);
            
            if (state === "SUCCESS") {
                //after code
                if (''+component.get('v.sObjectInfo.Order_Number__c')+'' == '') {  var result = response.getReturnValue();
  window.location.reload(false);
} else   helper.showTextAlert(component, 'Order Number already Exist');

            } else {
                
            }

            
        });

        $A.enqueueAction(action);
    },

    accept : function(component, event, helper) {
        $A.get("e.force:closeQuickAction").fire();
    }
})

组件

<aura:component controller="UpdateOrderNumberOnButtonClick" extends="c:LCC_GenericLightningComponent" >
    <aura:handler event="c:LCC_GenericApplicationEvent" action="{!c.apexExecute}"/>
    <aura:set attribute="partially" value="false"></aura:set>
    <aura:attribute name="showAlert" type="Boolean" default="false"/>
    <aura:attribute name="alertText" type="String"/>
    <aura:set attribute="isAdditionalObject" value="false"></aura:set>

    <div>
        <div class="slds-scrollable slds-p-around_medium slds-text-heading_small" id="modal-content-id-1">
            <aura:if isTrue="{!v.showAlert}">
                <p class="slds-hyphenate">{!v.alertText}</p>
                <aura:set attribute="else">
                    <div style="height: 6.75rem;">
                        <div role="status" class="slds-spinner slds-spinner_large slds-spinner_brand">
                            <span class="slds-assistive-text">Loading</span>
                            <div class="slds-spinner__dot-a"></div>
                            <div class="slds-spinner__dot-b"></div>
                        </div>
                    </div>
                </aura:set>
            </aura:if>
            <br/>
        </div>
        <footer class="slds-modal__footer">
            <lightning:button class="slds-button_brand" onclick="{!c.accept}" label="Accept"/>
        </footer>
    </div>
</aura:component>

原始的 Javascript 按钮

Here's your current JavaScript button code, to compare with our suggestion.
{!REQUIRESCRIPT("/soap/ajax/24.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/20.0/apex.js")} 
var orderNumber = '{!Inscription__c.Order_Number__c}'; 
if(orderNumber == ''){ 
var result= sforce.apex.execute("UpdateOrderNumberOnButtonClick", "updateOrderNumber", {inscriptionId:'{!Inscription__c.Id}'}); 
window.location.reload(false); 
} 
else 
alert('Order Number already Exist');

标签: javascriptsalesforce-lightning

解决方案


推荐阅读