[SalesForce] force:createRecord doesn’t opens a create window

I am using standard force:createRecord to create Account. but I dont get create window when I clcik on a button.
I am hosting this lightning app from a VF page (as I want to overide standard button). I have written handler for createRecord event.

But when I host this lightning component from left navigation panel then it works. Please advise what am I missing?.

VF Page :

<apex:includeLightning />

<script>
    $Lightning.use("c:TestClientCreationApp", function() {
      $Lightning.createComponent("c:TestClientCreation",
      { },
      "lightning",
      function(cmp) {
        // do some stuff
      });
    });
</script>

Lightning App : c:TestClientCreationApp

<ltng:require styles="/resource/SLDS201/assets/styles/salesforce-lightning-design-system-ltng.css" />
 <ltng:require styles="/resource/SLDS201/assets/styles/salesforce-lightning-design-system-vf.min.css" />

<aura:dependency resource="c:TestClientCreation"/>

Lightning Component : TestClientCreation

 <aura:handler name="init" value="{!this}" action="{!c.doInit}" />

 <ui:button class="slds-button slds-button--brand" aura:id="btnCreateClient" press="{!c.showCreateClientModal}" label="">Create New Client </ui:button> 

TestClientCreation Js Controller :

showCreateClientModal : function (component, event, helper) {

    var createRecordEvent = $A.get("e.force:createRecord");
     createRecordEvent.setParams({
        "entityApiName": "Account"
    });
    createRecordEvent.fire();

},

createClient : function (component, event, helper) {

console.log('Yay');

}

Best Answer

Since you are now outside the Lightning component ,the force events will no more work .

Hence if you are using this in lightning experience ,then there is a trick to use sforce instead of force events .

you should be able to use sforce record create

createClient : function (component, event, helper) {

   console.log('Yay');
   sforce.one.createRecord(Account);
}
Related Topic