Variablen- und Feldliste in Extension Proberties
Um Variablen oder Felder in einer Qlik Extension zu nutzen müssen in der define ng!$q nutzen um innerhalb der Proberties auf die Promises von Qlik zugreifen zu können.
Beispiel:
define(["qlik", "jquery",'ng!$q'],
function ( qlik, $, $q) {
'use strict';
// Your Code
}
Funktion um die Variablenliste zu erhalten:
var getVariableList = function(){
var defer = $q.defer();
app.getList( 'VariableList', function ( items ) {
defer.resolve( items.qVariableList.qItems.map( function ( item ) {
return {
value: item.qName,
label: item.qName
}
} )
);
} );
return defer.promise;
}
Um die Liste innerhalb der Proberties zu nutzen benötigen Sie folgenden Code:
name: {
ref: "var1",
type: "string",
component: "dropdown",
label: $dict[lang].VariableName + " 1:",
options: function () {
return getVariableList().then( function ( items ) {
return items;
});
},
change: function(data){
data.var1Value = data.var1Value || {};
data.var1Value.qStringExpression = '=' + data.var1;
}
}
Funktion um die Feldliste zu erhalten:
var getVariableList = function(){
var defer = $q.defer();
app.getList( 'FieldList', function ( items ) {
defer.resolve( items.qVariableList.qItems.map( function ( item ) {
return {
value: item.qName,
label: item.qName
}
} )
);
} );
return defer.promise;
}
Wie Sie sehen ändert sich hier nur ein Wert in der Funktion ‚VariableList‘ gegen FieldList. Somit ist die Verwendung innerhalb der Proberties gleich dem Beispiel der Anwendung der Variablenliste.