首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceNow spUtil

ServiceNow spUtil
EN

Stack Overflow用户
提问于 2017-09-27 14:13:23
回答 1查看 1.9K关注 0票数 0

我试图对我们团队创建的现有小部件做一点小小的改进,但似乎无法让它正常工作。我们有一个小部件,它执行任务的RowCount并按状态对它们进行分组。我希望RowCount在任务完成后自动更新,而不需要用户按刷新按钮。我已经阅读了一些关于$rootscope、$broadcast和$on的文档,但似乎无法让它正常工作。

下面是我们HTML的片段:

代码语言:javascript
复制
<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>

我们的服务器脚本的一个片段:

代码语言:javascript
复制
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,但无法让它正常工作:

代码语言:javascript
复制
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);
        })  

        });
 } 
EN

回答 1

Stack Overflow用户

发布于 2017-09-27 15:44:07

看看小部件Simple List,它有一个可能会有所帮助的示例。

您应该能够将您的recordWatch更改为

代码语言:javascript
复制
var filter = "stateIN3,4,7^parent.stateNOT IN1,800,900^assigned_to=" + window.NOW.user_id;
spUtil.recordWatch($scope, 'sn_hr_core_task', filter);

您通常不需要回调函数,除非您正在触发一些特定的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46450188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档