ServiceNow Сервисный портал AngularJS Accordian Widget не работает
Я новичок в serviceNow и пытаюсь создать Accordian Widget для отображения информации в таблице, сгруппированной по ProjectName.
Когда я запускаю этот код в редакторе виджетов, появляется аккордеон, но {{mytable.id}}
не заполняется и отображаются только названия проектов.
Кроме того, разворачивается / открывается только верхнее имя проекта, которое, я думаю, связано с неуникальным идентификатором.
Я не знаю, как это исправить.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div class="panel-group" id="accordian">
<div class="panel panel-{{mytable.id}}" ng-repeat="mytable in data.mytables">
<div class="panel-heading" role="tab" id="heading_{{::mytable.pid}}">
<div class="panel-group" id="accordian">
<div class="panel panel-{{mytable.id}}" ng-repeat="mytable in data.mytables">
<div class="panel-heading" role="tab" id="heading_{{::mytable.pid}}">
<span class=”panel-title”>
<a role=”button” data-toggle=”collapse” href=”#collapse_{{mytable.id}}” aria-expanded=”true” aria-controls=”collapse_{{::mytable.id}}”>
<i class=”fa fa-chevron-down”></i>{{::mytable.project_name}} <span class=”badge”>{{::mytable.count}}</span>
</a>
</span>
</div>
<div id=”#collapse_{{::mytable.id}}” class=”panel-collapse collapse” role=”tabpanel” aria-labelledby=”heading_{{::mytable.id}}”>
<div class=”panel-body”>
<table class=”table”>
<thead>
<tr>
<th>Month</th>
<th>Year</th>
<th>PDF</th>
<th>XLS</th>
<th>
</thead>
<tbody>
<tr>
<td>{{::mytable.invoice_month}}</td>
<td>{{::mytable.invoice_year}}</td>
<td>{{::mytable.pdf}}</td>
<td>{{::mytable.xls}}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
/*Client Script*/
function($scope){
var c = this;
}
/*Service Script*/
(function() {
data.mytables = [];
var gr = new GlideAggregate('x_project_table');
gr.addActiveQuery();
gr.groupBy('project_name');
gr.query();
while(gr.next()){
var mytable = {};
mytable.project_name = gr.getDisplayValue('project_name');
mytable.invoice_month = gr.getDisplayValue('invoice_month');
mytable.invoice_year = gr.getDisplayValue('invoice_year');
mytable.pdf = gr.getDisplayValue('pdf');
mytable.xls = gr.getDisplayValue('xls');
data.mytables.push(mytable);
}
})();
1 ответ
{{mytable.id}}
не заполняется, потому что вы не указали его в сценарии сервера.
Вам нужно что-то вроде mytable.id= gr.getValue('sys_id');