我试图对我们团队创建的现有小部件做一点小小的改进,但似乎无法让它正常工作。我们有一个小部件,它执行任务的RowCount并按状态对它们进行分组。我希望RowCount在任务完成后自动更新,而不需要用户按刷新按钮。我已经阅读了一些关于$rootscope、$broadcast和$on的文档,但似乎无法让它正常工作。
下面是我们HTML的片段:
<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>我们的服务器脚本的一个片段:
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);
})
});
} 发布于 2017-09-27 15:44:07
看看小部件Simple List,它有一个可能会有所帮助的示例。
您应该能够将您的recordWatch更改为
var filter = "stateIN3,4,7^parent.stateNOT IN1,800,900^assigned_to=" + window.NOW.user_id;
spUtil.recordWatch($scope, 'sn_hr_core_task', filter);您通常不需要回调函数,除非您正在触发一些特定的操作。
https://stackoverflow.com/questions/46450188
复制相似问题