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.