date: 2019-10-18 09:10:00

updated: 2019-10-18 15:18:00

Qlik Sense插件及QRS接口补充

1.插件

1.1 获取数据方式

理论上 Engine 所有的方法都应该有对应的 Capability API 方法,但是在开发者文档里的 API 有时候并不全,在获取数据的时候,可以去参考一下 Engine API 方法,在调用函数的时候使用 app.model.enigmaModel.api 的方式来获取数据

// 获取当前 app 下所有的字段
// 在返回的 data 中会有字段名称以及其所属于的数据表名
app.model.enigmaModel.getFieldList().then(function(data){
...
}

1.2 组装数据

如果数据是一个数组,那么可以使用 map 方法来返回一个结果体

var fieldMap = fields.map(function(field){
return {
"qDef": {
"qFieldDefs": [
field
]
}
}
});

1.3 同步和异步

在调用 API 方法来访问 Sense 获取数据时,返回的方式都是异步的,所以需要转换成同步操作。

return new qlik.Promise(function(resolve, reject){
// 这里面处理异步函数
// 第一个函数是 resolve 的,第二个函数是 reject 的
app.model.enigmaModel.getFieldList().then(function(data){
// app.model.enigmaModel.getFieldList() 方法是异步的,所以用 then(function(){}) 来保证同步
... // 此处的代码和上面的 `then` 是同步的
app.visualization.create('table',fieldArr).then(function(vis){
...
resolve() // 这个函数一定要写在最后面,但是如果最后是一个异步的函数的话,就需要写在异步函数的最后面
});
}, function(error){
// 这里是失败时所做的操作
reject(error)
});
});

1.4 使用 Leonardo 组件

JavaScript:

define( [
'text!./template.ng.html',
'text!./dialog-template.ng.html'
],
function ( template, dialogTemplate ) {
return {
support: {
export: false,
exportData: false,
snapshot: false
},
template: template,
controller: ['$scope', 'luiDialog', function ( $scope, luiDialog ) {
// 这里需要引用 luiDialog 的页面,相当于单独打开了一个页面
$scope.openDialog = function() {
luiDialog.show({
template: dialogTemplate,
// 这里必须是 input 的形式,相当于主页面给次页面的一个输入值,输入的是主页面的变量
input: {
name: $scope.name
},
controller: ['$scope', function( $scope2 ) {
// 此处是 $scope2 是指 luiDialog 的
$scope2.text = 'Use the dialog to display important messages or use it for actions requiring a lot of space, ' +
'like entering information into a form.'
}]
});
};
}]
};
});

dialog-template.ng.html:

<lui-dialog style="max-width: 450px;">
<lui-dialog-header>
<lui-dialog-title>My dialog</lui-dialog-title>
</lui-dialog-header>
<lui-dialog-body>
Hello, <i>{{input.name || "Missing name"}}</i>! <div style="margin-top: 10px">
<b>Tip</b>
</div>
<div style="margin-top: 5px">
{{text}}
</div>
</lui-dialog-body>
<lui-dialog-footer>
<button class="lui-button lui-dialog__footer-button" ng-click="close();">Close</button>
</lui-dialog-footer>
</lui-dialog>

Qlik Sense插件及QRS接口补充的更多相关文章

  1. Qlik Sense学习笔记之Mashup开发(一)

    date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...

  2. 如何把Qlik Sense嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...

  3. Chrome 谷歌浏览器安装使用 Postman 和 Sense 插件

    博客地址:http://www.moonxy.com 一.前言 Google Chrome 的特点是简洁.快速等.Chrome 支持多标签浏览,每个标签页面都在独立的"沙箱"内运行 ...

  4. Qlik Sense学习笔记之插件开发

    date: 2019-05-06 13:18:45 updated: 2019-08-09 15:18:45 Qlik Sense学习笔记之插件开发 1.开发前的基础工作 1.1 新建插件 dev-h ...

  5. Qlik Sense学习笔记之Mashup开发(二)

    date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...

  6. Qlik Sense Desktop

    2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...

  7. jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框

    jQuery实现搜索框插件 豆瓣音乐接口实现豆瓣搜索框 豆瓣接口有时不稳定,网络请求会报400,不要惊慌.我主要是练习一下jQuery的JSONP和封装插件. <div class=" ...

  8. 2014年新一代的报表利器 Qlik Sense Desktop 初步体验

    点击进入 QlikView/QlikSense 社区  交流群:432998033 Qlik Sense Desktop 的案例展示 先上几个刚刚边看边学完成的几个报表案例效果 (如果图片显示不正常, ...

  9. Elasticsearch之sense插件安装之后的浏览详解

    前提博客是 Elasticsearch之sense插件的安装(图文详解) 立马,可以看到 http://192.168.80.145:5601/app/sense 以后更新

随机推荐

  1. linux内存分配与回收

    前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后, ...

  2. hadoop集群测试

    master操作: [admin@master ~]$ start-all.sh [admin@master ~]$ jps [admin@master ~]$ hadoop fs -mkdir /i ...

  3. YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口

    本文将介绍 YOLOv4 官方 Darknet 实现,如何于 Ubuntu 18.04 编译,及使用 Python 接口. 主要内容有: 准备基础环境: Nvidia Driver, CUDA, cu ...

  4. Spring Boot 系统启动任务定义

    前言 系统任务:在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行. 应用场景:例如配置文件加载,数据库初始化等操作 Spring Boot出现之前 解 ...

  5. application x-www-form-urlencoded与JS的encodeURIComponent()

    application/x-www-form-urlencoded 表单的enctype属性表示在发送到服务器之前应该如何对表单数据进行编码,默认值是application/x-www-form-ur ...

  6. Python-in is == 区别

    in 判断单个元素是否在序列中, 对字典来说只能判断key,在不在关系 print("ab" in "abcdefg") print("abc&quo ...

  7. 微服务通信之feign的注册、发现过程

    前言 feign 是目前微服务间通信的主流方式,是springCloud中一个非常重要的组件.他涉及到了负载均衡.限流等组件.真正意义上掌握了feign可以说就掌握了微服务. 一.feign的使用 f ...

  8. Python-joypy和 R-ggridges 峰峦图制作

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于DataCharm,作者 宁海涛 转载地址 https://www ...

  9. C++重载>>和<<(输入和输出运算符)详解

    转载:http://c.biancheng.net/view/2311.html 在C++中,标准库本身已经对左移运算符<<和右移运算符>>分别进行了重载,使其能够用于不同数据 ...

  10. IDEA2020.2的破解

    第一种方式:http://code.39sd.cn/ 直接获取二维码: 第二种:下载破解工具(本方法只是提供个人学习使用) 1.下载2020.2的idea 链接:https://pan.baidu.c ...