Используйте $ q.when , чтобы преобразовать обещание ES6 в обещание AngularJS:
app.controller('controller', function($scope, $q, cube) {
var promise=$q.when(cube.getElement())
promise.then(function(data) {
$scope.data = data;
console.log(data);
});
});
HTML
<div ng-controller="datos-generales">
<div id='filtro-datos'>
{{data}}
</div>
</div>
$ q.when оборачивает объектэто может быть значение или обещание (от третьей стороны) в обещании $ q.Это полезно, когда вы имеете дело с объектом, который может или не может быть обещанием, или если обещание исходит из источника, которому нельзя доверять.
AngularJS изменяет обычный поток JavaScript, предоставляя свой собственныйцикл обработки событий.Это разбивает JavaScript на классический и AngularJS контекст выполнения.Только операции, которые применяются в контексте выполнения AngularJS, выиграют от привязки данных AngularJS, обработки исключений, наблюдения за свойствами и т. Д.
Обновление
Альтернативно, преобразуйте обещание ES6 вservice:
app.service('cube', function($q) {
const appSense = qlik.openApp('data.qvf', config);
this.getElement = function(id) {
var es6promise = appSense.getObject('filter-div', 'ABFqkb');
return $q.when(es6promise);
};
}
app.controller('controller', function($scope, ̶$̶q̶,̶ cube) {
cube.getElement()
.then(function(data) {
$scope.data = data;
console.log(data);
});
});
Таким образом, контроллеры не должны выполнять преобразование.