【问题标题】:ServiceNow spUtilServiceNow spUtil
【发布时间】: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


    【解决方案1】:

    看看小部件 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);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-11
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-27
      相关资源
      最近更新 更多