ServiceNow angularjs:如何将服务器脚本值传递给客户端脚本
问题描述:
我正在使用ServiceNow,并且正在创建一个窗口小部件,该窗口小部件将窗体嵌入到窗体中。我想预先填充模态表单中的一些字段,但我不确定如何执行此操作。ServiceNow angularjs:如何将服务器脚本值传递给客户端脚本
这是我的一个按钮的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),我希望预填充数据分别为.parent和data.short_description。要将服务器脚本值传递给HTML,我知道你可以做{{data.parent}}。但是,如何将这些值传递到生成模态窗体的客户端脚本中?
答
您需要将值传递给客户端脚本和“catch”。
我假设你正在尝试传递多个值,所以你需要一个数组来保存值并传递给客户端脚本端。
服务器脚本:
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
}
注:我没有测试此代码。