【发布时间】:2022-11-24 13:30:10
【问题描述】:
spModal 似乎有一个名为“共享”的选项,如下所示:https://github.com/service-portal/x-archive/blob/master/documentation/spModal.md(向下滚动到共享)。
我正在努力让它发挥作用。
在我们的服务门户中,我有一个包含加载小部件的客户端脚本的页面,我按照上面的链接在此处添加了“共享”选项:
function onLoad() {
if (g_scratchpad.canWrite && !g_form.isReadOnly('u_custom_company') && spModal) {
var wait = setInterval(function() {
var vendorEle = this.document.querySelector('#u_custom_company > .form-group');
if (!vendorEle) {
return;
}
var ccompany = {};
var btn = this.document.createElement('button');
btn.innerHTML = 'Add New Custom Company';
btn.className = 'btn btn-sm btn-primary m-t-sm';
btn.onclick = function() {
spModal.open({
title: 'Add New Custom Company',
widget: 'new_custom_company',
footerStyle: { display: "none" },
shared: ccompany
}).then(function() {
// Shared object was updated
console.log(ccompany);
});
};
vendorEle.appendChild(btn);
clearInterval(wait);
}, 500);
}
}
在上面的脚本中,console.log() 的结果一直是“未定义”。
然后在我的自定义小部件的客户端脚本中,我不确定如何为这个共享变量赋值,以便上面的客户端脚本可以访问它。到目前为止,这是我尝试过的:
function($scope) {
/* widget controller */
var c = this;
c.submit = function() {
if ( $('#name').val() && ( $('#idone').val() || $('#idtwo').val() )) {
c.data.action = 'createCustomCompany';
c.server.update().then(function() {
c.widget.options.shared = $scope.data.custom_companay.sys_id;
});
// close modal popup when submit is clicked
$scope.$parent.$parent.buttonClicked({ label: "Submit", submit: true });
} else {
$('.errormessage').show();
}
};
}
custom_company.sys_id 正在由我的服务器脚本填充并包含一个 sys_id,例如新创建的自定义公司记录。
我不确定如何将数据从$scope.data.custom_companay.sys_id 移交给第一个客户端脚本中的变量?
【问题讨论】:
标签: javascript angularjs servicenow