2017-04-07 96 views
3

我正在使用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}}。但是,如何將這些值傳遞到生成模態窗體的客戶端腳本中?

回答

0

您需要將值傳遞給客戶端腳本和「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 
} 

注:我沒有測試此代碼。

相關問題