【发布时间】:2017-09-27 14:13:23
【问题描述】:
我正在尝试对我们团队创建的现有小部件进行轻微改进,但似乎无法使其正常工作。我们有一个小部件,它执行 RowCount 任务并按状态对它们进行分组。我希望 RowCount 在任务完成后自动更新,而无需用户按下刷新按钮。我已经阅读了一些关于 $rootscope、$broadcast 和 $on 的文档,但似乎无法让它发挥作用。
下面是我们的 HTML 的 sn-p:
<table class="table table-sm table-responsive">
<tbody>
<tr class="h3">
<td colspan=2>Complete</td>
</tr>
<tr class="h2 bg-success" ng-repeat="x in data.values track by $index">
<td><span class="glyphicon glyphicon-check"></span></td>
<td>{{x.completedCount}}</td>
</tr>
</tbody>
</table>
我们的服务器脚本的 sn-p:
var values = [];
var _completedCount;
var gsCompleted = new GlideRecordSecure('sn_hr_core_task');
//CLOSED COMPLETE, CLOSED INCOMPLETE,
gsCompleted.addQuery('state', 'IN', '3,4,7');
gsCompleted.addQuery('assigned_to', gs.getUserID());
gsCompleted.addQuery("parent.state", 'NOT IN', '1,800,900');
gsCompleted.query();
if(gsCompleted){
_completedCount = gsCompleted.getRowCount();
}
else{
_completedCount = 0;
}
values.push(
{
completedCount: _completedCount
});
data.values = values;
如何让这个小部件在不刷新页面的情况下自动更新已完成的行数?我一直在玩 spUtil recordWatch,但无法让它正常工作:
function($scope, $sce, spUtil) {
var c = this;
c.data.loading = true;
//After page initially loads re-call server script to load data
c.server.get({
action: 'retrieve_data'
}).then(function(response) {
c.data.loading = false;
console.log('Response');
console.log(response);
c.data.values = response.data.values;
spUtil.recordWatch($scope, 'sn_hr_core_task', "", function(name,data) {
spUtil.update($scope);
})
});
}
【问题讨论】:
标签: angularjs widget servicenow