是否可以在导航栏中为记录名称为标签标签的自定义闪电组件打开新标签?

时间:2019-04-05 14:32:07

标签: salesforce salesforce-lightning lightning

我需要在非控制台应用程序环境中的Lightning Experience中在导航栏中打开新的导航选项卡。表应预先填充记录名称作为标签。

尝试以下方法: 为目标闪电组件创建了自定义标签

在源组件中:

创建的页面引用,其类型为standard__navItemPage。 为属性指定目标组件的自定义选项卡名称。 使用导航服务将控件重定向到新的URL。

在目标组件中: 使用接口isUrlAddressable检索页面参数。

var pageReference = {                     类型:“ standard__navItemPage”,                     属性:{                         apiName:“ Product_Overview”,                     },                     状态:{                         c__productId:itemId,                         c__isfavourite:isfavourite,                         c__isSourceSearchResultCmp:false
                    }                 };
         var navService = component.find(“ navService”);          navService.generateUrl(pageReference)          .then($ A.getCallback(function(url){              console.log('使用导航'+ URL);              navService.navigate(pageReference);          }),$ A.getCallback(function(error){              console.log(错误);          }));

问题是,正在打开的导航选项卡没有记录名称之类的详细信息,并且我找不到相同的任何API或方法。

这里的任何指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

var pageReference = {
    type: 'standard__navItemPage',
    attributes: { 
        apiName: 'Product_Overview', 
    },
    state: { 
        c__productId: itemId,
        c__isfavourite : isfavourite,
        c__isSourceSearchResultCmp : false
    }};
    var navService = component.find("navService");
    navService.generateUrl(pageReference).then($A.getCallback(function(url) { 
        console.log('Using Navigate'+url); 
        //---add this line which allows you to open url in new tab instead of navService 
        window.open('https:'+url,
                    '_blank' // <- This is what makes it open in a new window.
                   );
    }),$A.getCallback(function(error) {
    console.log(error); 
}));