- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 highmaps 创建一个矢量 map ,该 map 可以根据加载到 series[0].data
数组中的数据值进行更改。初始图表是使用我的默认值创建的,并使用自定义指令插入到页面中。当选择下拉列表更改值时,我使用 ng-change 触发函数来更新图表值。
我的 ng-change
函数会按预期触发并运行,直到我尝试访问包含用于填充 Highcharts 的数据的系列。似乎在创建初始图表后,系列数组的值被赋予null
。即使当我尝试加载新的 chartOptions
对象时,这种情况仍然存在。我注意到,当包含 ChartOptions 的 $scope
对象未绑定(bind)到指令时,该系列将填充正确的值。仅当数组绑定(bind)到指令时,它才是空的。
这只发生在我的高 map 上。页面上的所有其他 Highcharts 在双向绑定(bind)到指令后都可以看到其系列数组以供编辑。此外,我的 highmap ChartOptions 对象的所有其他元素都可以查看和编辑,但不能查看和编辑实际数据的部分。
我的指令
.directive('mapChart', function(){
return {
restrict: "E",
replace: true,
template: "<div id='map' class='div_content-holder'></div>",
scope:{
options:"=",
},
link: function(scope, element){
Highcharts.mapChart(element[0], scope.options);
});
}
};
});
我的html
<map-chart options="region_options"></map-chart>
我的 JavaScript
$scope.region_options = {};
var setRegionMap = function(jsonData){
var chartOptions = selectChart('map'); // grabs my premade options object
// grabs data from somewhere else and adds it to chart options
chartOptions.series[0].data.forEach(function (region, index) {
region["value"] = $scope.region_map.one_month[index];
console.log(chartOptions.series[0].data); //says that series exists
});
$scope.region_options = chartOptions;
console.log($scope.region_options); //says that .series is null, everything else is still there
//$scope.$apply(); //i do this elsewhere in my ajax call
};
这是将数组与 Highcharts 或 Angular 或两者双向绑定(bind)的问题吗?
最佳答案
您可以通过以下方式更改指令,为当前数据添加新参数。添加两个 watch ,您将确保每次从外部更改数据时,图表都会刷新以设置正确的数据,并且使用选项上的第一个 watch ,您将确保在真正加载选项时实例化图表:
.directive('mapChart', function(){
return {
restrict: "E",
replace: true,
template: "<div id='map' class='div_content-holder'></div>",
scope:{
options:"=",
current: "=" // your actual data
},
link: function(scope, element){
var chartexample = {};
scope.$watch('options', function() {
chartexample = Highcharts.mapChart(element[0], scope.options);
});
scope.$watch('current', function(){
chartexample.series[0].setData(scope.current);
});
}
}
});
你可以摆脱两个观察者。关于 init,一旦您已经有了所有选项,您只需确保初始化您的指令,这样您就不再需要监视选项了。关于当前数据,您可以在指令中添加一个回调参数 &
,该参数将更新图表的值,并在与 select 内的 ngChange 关联的函数内调用该指令的回调 Controller 。
这将使代码更好、更简洁。但现在您可以通过这种方式欣赏您的图表:)
祝您的应用好运!
干杯:)
关于javascript - 绑定(bind)到 highcharts/highmaps 指令时数组设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099197/
我正在显示带有分类区域的美国 map 。 map 运行良好,但我无法使用 Highmap 中的工具提示显示 Json 文件中的值。 这是我的代码: $.getJSON('../production/U
我正在使用higmaps来显示这样的数据类别: HighChart Code: http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/h
我正在使用 Highmap 创建 map ,并希望在单击(或悬停) map 的一部分后用不同的图表显示数据。 这是示例(我不想使用 Google Spreadsheet 获取数据,我想使用 json
在使用 Highmap 时根据区域覆盖范围显示某种数据。我能够使用气泡图类型创建 map ,但我面临一个主要问题,对齐!每个气泡都与其所属的区域/路径对齐;基本上我有两个系列 s1: {id, z,
我正在使用 Highcharts Js 来显示 Highmaps map 气泡数据。但问题是图表没有在科索沃国家绘制泡沫。例如如果我有如下 JSON 数据。 [ {"Country":"kosovo
我从演示部分获取了一个 Highmaps 示例,放大效果很好。然后我用我自己的数据替换了数据对象,用我自己的 GeoJSON 数据改变了世界地图。 现在缩放不再起作用了。 请看这个 JSFiddle.
我想在 Highmap 的 map 容器中创建一个按钮。我看到许多示例都与使用导出的 Highcharts 相关联。有人可以帮我举个 Highmaps(世界或某个特定国家/地区)的例子吗?更具体地说,
我有 2 个系列,如下所示。 $(function () { Highcharts.mapChart('container', { chart: {
我使用带有 json 格式的“丰富的点击信息”的 Highcharts 。为此,我使用了一个以前存在的示例。但是,我想补充一些内容。 单独的容器,其中包含额外信息(国家/地区图表)显示而不是单个容器,
我有一张用 Highmaps 库制作的 map ,由两个系列组成:管理边界和城市。在它的一侧有一个所有管理员的列表,并且在每个项目上都附加了一个鼠标悬停事件。当鼠标悬停在管理文本上时,我尝试突出显示而
我一直在尝试通过添加将 Highmaps 图表更改为气泡 输入:'mapbubble',如下但失败有什么办法可以做到吗?不知道哪里出了问题 series: [{ type: 'mapbubble'
我正在尝试创建 Highcharts ,但收到此错误: TypeError: a is undefined highmaps.js:11:348 这似乎是 javaScript 库
我是 highmaps/highcharts 的新手,并试图放置一个 map 应用程序,可以在同一张 map 上显示 2 种数据。一种是突出显示的国家/地区的形式(以红色显示),另一种是气泡的形式(当
我正在尝试使用 Highcharts 在世界地图上可视化数据值。 最高值应在 map 上显示为黑色填充,最小值应显示为白色区域。但是,绘制的颜色与 minColor 和 maxColor 设置不匹配。
我正在尝试在 Highmaps 中实现下一个功能:当用户将鼠标光标移动到特定点时,图像将与文本数据一起显示,您知道,在任何 Highcharts 图表、股票或 map 上,关于该点的详细信息当用户将光
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
当我创建 HighMaps 对象时, map 在底部显示一条消息,其中包含无效字符(见红框): 这似乎在所有 demos 中都呈现良好.这是在我的本地主机上启动时创建的 HTML block :
我的问题很简单(我认为) 我有一个类为“容器”的 DIV,我用它作为我的 map 。这个很棒的插件 (Highcharts) 是响应式的,但它只会在窗口调整大小时调整大小。 我需要'强制'调整大小而不
我正在尝试创建佛罗里达州的点密度图。虽然我知道 Highmaps 不支持带有 map 点的颜色轴。我扩展了它并且它有效,但它带来了副作用。当我单击图例中的某一类别时,不会发生隐藏。例如,如果我单击“>
我有一张在 Highmaps 中渲染的美国 map ,其中 enableDoubleClickZoomTo 设置为 true。我一直试图辨别用户双击缩放 map 的状态,并想知道 redraw 事件中
我是一名优秀的程序员,十分优秀!