Angularjs <div ng-controller =“”override =“”second =“”ng-controller =“”

时间:2016-10-12 14:59:08

标签: javascript html angularjs d3.js

=“”

我正在使用AngularJS对于我的图表。

我必须创建两个图表,它们都使用相同的导航栏。

然而,我可以在屏幕上显示两个图表;只有<div ng-controller="first ">可以使用导航栏。我的第二个<div ng-controller="second">被覆盖了。

<div ng-controller="first">
    <div ng-controller="second ">

这就是我在HTML上的方式,

如果我将<div ng-controller="second ">替换为<div ng-controller="first">,则ng-controller =“second”可以正常使用dropdownm,但“first”将被覆盖

这是我的JSBIN

我也试过这个answer on SO要么它对我不起作用,要么我无法让它工作。

我的目标是从下拉菜单中选择后更新两个图表。只有一个因<div>问题

而起作用

1 个答案:

答案 0 :(得分:1)

因此,您希望为两个图表设置相同的过滤器,这些图表是根据两个不同控制器中提供的数据创建的。

您当前的方法只会更新第二个控制器的ng-model附加值。相反,尝试使用服务。让我们称之为chart.service

现在,此服务可以包含日期,月份等过滤器的值。让两个控制器都使用此服务,并在从UI更新时,使用您的控制器更新服务中的值。由于服务将具有单个实例,因此两个控制器现在将具有相同的过滤器值,并且两个图表都将正确显示。