Angularjs (Highstock)如何基于变量而非数据设置选项的导航器

Angularjs (Highstock)如何基于变量而非数据设置选项的导航器,angularjs,highcharts,highstock,navigator,highcharts-ng,Angularjs,Highcharts,Highstock,Navigator,Highcharts Ng,我正在创建一个Highstock图表,它应该在开始时只显示可用数据的一部分。我希望将导航器极值设置为我提供的一些默认值,并在用户移动/拉伸导航器时以异步方式加载其余数据。可悲的是,我认为它应该起作用的方式并没有起作用。我就是这么做的(图表选项): 如您所见,我将向options/navigator传递一个xAxis对象,其中包含最小和最大日期(即时间戳)。它不能按预期工作-导航器的极限值被设置为数据系列的开始和结束。我检查了,我用于日期的变量设置正确,应该可以正常工作 是否有其他方法可以实现我的

我正在创建一个Highstock图表,它应该在开始时只显示可用数据的一部分。我希望将导航器极值设置为我提供的一些默认值,并在用户移动/拉伸导航器时以异步方式加载其余数据。可悲的是,我认为它应该起作用的方式并没有起作用。我就是这么做的(图表选项):

如您所见,我将向options/navigator传递一个xAxis对象,其中包含最小和最大日期(即时间戳)。它不能按预期工作-导航器的极限值被设置为数据系列的开始和结束。我检查了,我用于日期的变量设置正确,应该可以正常工作

是否有其他方法可以实现我的目标或使这种方法发挥作用

编辑:

奇怪的是,给定xAxis.min和.max在highcharts ng中有效,但在我创建自己的指令的解决方案中不起作用

下面是它的外观:

上一个是我的普通解决方案,下一个是高功率解决方案。highchart ng one按预期工作。两者都有相同的选项和相同的数据:

var options = {
      title: {
        text: 'Analysis Graph'
      }
      yAxis: yAxises,
      xAxis : {
      },
      series: series,
      useHighStocks: true,
      options: {
         navigator: {
           xAxis: {
             min: scope.dates.start,
             max: scope.dates.end
           },
           enabled:true
         },
         rangeSelector:  {
           enabled: true,
           selected: 2
         }
      }
    }

有人知道为什么会这样吗?这两种解决方案似乎都使用4.2.5版中的highstock。我不想使用highcharts ng,因此如果有人对如何在不使用它的情况下使其工作有想法,请提供意见。

我为您准备了一个简单的演示,允许您在右侧滚动时添加点。示例:-在示例中,我们加载数据并在xAxis上设置最小/最大值。其目的是访问滚动/平移事件。下一步是捕捉我们检查的极端事件,如果我们在图表的边缘。如果是,那么我们调用generateData(可以是任何函数,比如ajax,但我准备模拟场景)并迭代点以将它们添加到图表中。这真的很有趣,也很有帮助,谢谢你,尽管它并没有解决我的问题。问题是,我已经知道我的数据的整体开始和结束,我只需要在选项中设置它,然后在用户更改时间范围时使用AfterSetExtrems,默认情况下,时间范围不能满。我看到您是通过在图表的X轴中设置最小值和最大值,而不是导航器来实现的。它对我不起作用-不知何故,导航器从数据所在的位置开始,但我首先下载的数据应该是更大时间范围的一小部分。据我所知,highcharts ng在图表配置对象的某些值上使用$watch,xAxis min和max是其中的两个。无论何时更改,观察者都会“捕获”它,然后调用本机highcharts redraw()方法,更新视图。你应该在自己的指令中尝试一下,看看是否有效。
var options = {
      title: {
        text: 'Analysis Graph'
      }
      yAxis: yAxises,
      xAxis : {
      },
      series: series,
      useHighStocks: true,
      options: {
         navigator: {
           xAxis: {
             min: scope.dates.start,
             max: scope.dates.end
           },
           enabled:true
         },
         rangeSelector:  {
           enabled: true,
           selected: 2
         }
      }
    }