我需要在非控制台应用程序环境中的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或方法。
这里的任何指导将不胜感激。
答案 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);
}));