我正在ServiceNow工作,我正在创建一个窗口小部件,它可以拉出一个嵌入了窗体的模式窗口。我想预先填充模态形式的一些字段,但我不确定如何做到这一点。
这是我打开模态窗口的按钮的HTML:
<div>
<input class="btn btn-support" ng-click="c.onbSupport()" type="button" value="Ask a Question">
</div>
我的客户端脚本如下所示:
function($scope,spModal) {
/* widget controller */
var c = this;
c.onbSupport = function(){
spModal.open({
title: 'Submit Your Question',
widget: 'form-new',
widgetInput: {table: 'support_tickets'},
buttons: []
}).then(function(){
})
}
}
最后,这是我的服务器脚本:
var usr = gs.getUserID();
var gr = new GlideRecord('info');
gr.addQuery('opened_for', usr);
gr.query();
if(gr.next()) {
data.parent = gr.getValue('number');
data.short_description = gr.getValue('short_description');
}
在模态形式中,我有两个字段(parent_case和category),我希望分别预先填充data.parent和data.short_description。要将服务器脚本值传递给HTML,我知道您可以执行{{data.parent}}。但是,如何将这些值放入生成模式窗体的客户端脚本中?
答案 0 :(得分:0)
您需要将值传递给客户端脚本并“捕获”。
我假设您正在尝试传递多个值,因此您需要一个数组来保存值并传递给客户端脚本端。
服务器脚本:
var records=[]; //define array first
var usr = gs.getUserID();
var gr = new GlideRecord('info');
gr.addQuery('opened_for', usr);
gr.query();
if(gr.next()) {
var rec={} //define a record
rec.parent = gr.getValue('number');
rec.short_description = gr.getValue('short_description');
records.push(rec); //populate array with records
}
data.records=records; // you need to assign your array as data
客户端脚本:
function($scope,spModal) {
/* widget controller */
var c = this;
var infos=c.data.records;//this is the "catch" part
}
注意:我没有测试过这段代码。
答案 1 :(得分:0)
@alperzzz提供了正确的方法。 要移交数据,您必须使用“共享”属性与嵌入式窗口小部件共享记录。在窗口小部件中,您可以填充共享数据。 您可以在docs
中找到所有属性