如何 return widgetDefinitions 与 malhar-angular-dashboard 中的数据服务?
How to return widgetDefinitions with data service in malhar-angular-dashboard?
我已经安装了 malhar-angular-dashboard 模块。我不想对 widgetDefinitions 进行硬编码,因此我创建了一个服务 将 return 带有小部件 objects 的数组。我正在对 return 数据(例如小部件名称、标题等)使用休息服务。问题是我收到此 错误 并且不知道如何解决 :
TypeError: widgetDefs.map is not a function
服务数据
.factory('widgetRestService',['$http','UrlService','$log','$q',
function($http,UrlService,$log,$q){
var serviceInstance = {};
serviceInstance.getInfo = function(){
var request = $http({method: 'GET', url: '/rest/widgets/getListInfoDashboards'})
.then(function(success){
serviceInstance.widgets = success.data;
$log.debug('serviceInstance.widgets SUCCESS',serviceInstance.widgets);
},function(error){
$log.debug('Error ', error);
$log.debug('serviceInstance.widgets ERROR',serviceInstance.widgets);
});
return request;
};
serviceInstance.getAllWidgets = function () {
if (serviceInstance.widgets) {
return serviceInstance.widgets;
} else {
return [];
}
};
return serviceInstance;
}]);
widgetDefinitions 服务
.factory('widgetDefinitions',['widgetRestService','$log','$q','$http',function(widgetRestService,$log,$q,$http) {
var widgetDefinitions = [];
return widgetRestService.getInfo().then(function (data) {
var widgets = widgetRestService.getAllWidgets();
$log.debug('widgetsDefs ', widgets);
for (var i = 0; i < widgets.length; i++) {
widgetDefinitions.push(widgets[i]);
}
$log.debug('widgetDefinitions ', widgetDefinitions);
return widgetDefinitions;
});
});
控制台
TypeError: widgetDefs.map is not a function
widgetDefs: [Object,Object,Object]
widgetDefinitions: [Object,Object,Object]
备注
如果我 hard-code 我的 widgetDefinitions-service return 数组像这样工作,如果我 return 我的休息服务不工作(widgetDefs.map 不是函数):
[
{
name:'widgetList',
title:'title1'
},
{
name:'widgetPie',
title:'title2'
},
{
name:'widgetTable',
title:'title3'
}
]
github 中的原始问题已被评论并关闭。
这是来自 github 的评论:
@pitong 确保仪表板选项包含一个名为 属性 的 widgetDefinitions 并且它是一个数组,即使它是空的。还要确保您使用的浏览器版本支持数组的映射功能。此数组映射函数在第 5 版中成为 ECMA-262 标准,因此您的浏览器版本可能不支持它。
我已经安装了 malhar-angular-dashboard 模块。我不想对 widgetDefinitions 进行硬编码,因此我创建了一个服务 将 return 带有小部件 objects 的数组。我正在对 return 数据(例如小部件名称、标题等)使用休息服务。问题是我收到此 错误 并且不知道如何解决 :
TypeError: widgetDefs.map is not a function
服务数据
.factory('widgetRestService',['$http','UrlService','$log','$q',
function($http,UrlService,$log,$q){
var serviceInstance = {};
serviceInstance.getInfo = function(){
var request = $http({method: 'GET', url: '/rest/widgets/getListInfoDashboards'})
.then(function(success){
serviceInstance.widgets = success.data;
$log.debug('serviceInstance.widgets SUCCESS',serviceInstance.widgets);
},function(error){
$log.debug('Error ', error);
$log.debug('serviceInstance.widgets ERROR',serviceInstance.widgets);
});
return request;
};
serviceInstance.getAllWidgets = function () {
if (serviceInstance.widgets) {
return serviceInstance.widgets;
} else {
return [];
}
};
return serviceInstance;
}]);
widgetDefinitions 服务
.factory('widgetDefinitions',['widgetRestService','$log','$q','$http',function(widgetRestService,$log,$q,$http) {
var widgetDefinitions = [];
return widgetRestService.getInfo().then(function (data) {
var widgets = widgetRestService.getAllWidgets();
$log.debug('widgetsDefs ', widgets);
for (var i = 0; i < widgets.length; i++) {
widgetDefinitions.push(widgets[i]);
}
$log.debug('widgetDefinitions ', widgetDefinitions);
return widgetDefinitions;
});
});
控制台
TypeError: widgetDefs.map is not a function
widgetDefs: [Object,Object,Object]
widgetDefinitions: [Object,Object,Object]
备注
如果我 hard-code 我的 widgetDefinitions-service return 数组像这样工作,如果我 return 我的休息服务不工作(widgetDefs.map 不是函数):
[
{
name:'widgetList',
title:'title1'
},
{
name:'widgetPie',
title:'title2'
},
{
name:'widgetTable',
title:'title3'
}
]
github 中的原始问题已被评论并关闭。
这是来自 github 的评论:
@pitong 确保仪表板选项包含一个名为 属性 的 widgetDefinitions 并且它是一个数组,即使它是空的。还要确保您使用的浏览器版本支持数组的映射功能。此数组映射函数在第 5 版中成为 ECMA-262 标准,因此您的浏览器版本可能不支持它。