javascript - ServiceNow:从数组动态创建表

标签 javascript arrays html-table servicenow

我正在尝试在 ServiceNow 中创建一个小部件,根据用户的位置和职业显示与用户相关的所有知识文章。在某些情况下,应该返回多篇 KA 文章,而我想动态创建一个表来列出所有适用的文章。下面是我的服务器脚本,我在其中从 HR_Profile 检索用户的职业和位置。然后,我打开一个空数组,在其中循环遍历适合过滤器的每篇知识文章,获取 KA 编号和简短描述,然后将其插入我的空数组中:

var gr = new GlideRecord('hr_profile');
    gr.addQuery('user', gs.getUserID());
    gr.query();
    if(gr.next())
    {
  var occ = gr.occupation;
  var loc = gr.user.location;
  }

var kaArray = [];
var ka = new GlideRecord('x_81991_knowledge');
     ka.addQuery('workflow_state', 'Published');
     ka.addQuery('kb_category.label', 'Benefits');
     var qc1 = ka.addQuery('occupation', 'CONTAINS', occ);
     qc1.addOrCondition('location', 'CONTAINS', loc);
     ka.orderByDesc('sys_updated_on');
     ka.query();
     while(ka.next()) {
            obj = {number: ka.number,
            short_desc: ka.short_description,
             url: 'kb_view.do?sysparm_article=' + ka.number}
   kaArray.push(obj);
  }

我的问题是如何访问数组并循环创建一个包含三列(编号、描述、URL)以及与该人相关的所有文章的 HTML 表格?

谢谢。

最佳答案

嗯,这看起来与您在 StackOverflow 上发布的上一篇文章非常相似。我认为它们是相关的。只是想让您知道,如果该帖子中提供了此上下文信息,那么我可能只提供一个更完整的答案来帮助您更好地解决问题。

要使小部件执行您想要的操作,您需要做的是 <div>在您的小部件的 HTML 中标记 ng-repeat属性。在您的服务器端代码中,您需要使用data对象来填充小部件的列,正如您在无数小部件中看到的那样,这些小部件包含使用 Angular 渲染的现有表格示例。 (您也可以使用 <table> ,然后重复您的列标签。确实有无数其他方法可以做到这一点)。

这是一个小部件,它可能非常接近您想要完成的任务,您只需要稍微调整一下(您可以使用我在回答您的其他问题时提供的代码来部分完成):

https://your_instance.service-now.com/nav_to.do?uri=sp_widget.do?sys_id=3c817b52cb30020000f8d856634c9cfb

(假设您在 Istanbul 尔,也可能在赫尔辛基)。

关于javascript - ServiceNow:从数组动态创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42934122/

相关文章:

javascript - 悬停时错误的 X 轴标签

javascript - Chart.js 中的鼠标悬停功能表现奇怪

javascript - 在点击事件中更改本地存储的值并不总是有效

悬停在 Div 上时显示字形图标时移动的 Html 表格

css - 如何减少表的 2 TR 之间的差距?

javascript - ' !!window.google ' 是什么意思?

arrays - 用 bash 替换数组中的字符串

php - 如何在 CakePHP 3.x 中的 MySQL IN 子句中使用多个列?

c - 使用空字符值的 calloc 字符数组的长度?

jquery - 如何使用 jQuery 选择表格列