如何在AngularJS中的两个单独模块之间共享数据

时间:2016-03-12 14:48:10

标签: javascript angularjs

我需要知道如何在不同模块中的两个控制器之间同步数据。下面是我正在使用的代码。我尝试使用带有观察者模式的服务。但似乎注入两个应用程序的服务实例是完全不同的

int

请参阅http://embed.plnkr.co/l0utIMp27qpbsao64Api/

上的HTML

2 个答案:

答案 0 :(得分:4)

您正在创建2个完全独立的角度应用。这就是你获得2个实例的原因。你想要1个带有3个模块的应用程序。

首先从angular.bootstrap(document.getElementById("app2"), ['app2']);取出index.html。你正在那里引导第二个应用程序。不是你想要的。

接下来,将ng-app="app1"移动到包含两个控制器的元素,例如body元素。

此外,在index.html{{myCounty}}更改为{{MyCounty}}。案件很重要。

最后在app.jsangular.module('app1',['app1','app3'])更改为angular.module('app1',['app2','app3'])。我认为这首先是你的意思。

另外,请在问题中发布您的index.html内容。那里有很多问题。这样,如果您的链接在某个时刻死亡,这个问题可能仍然对其他有类似问题的人有所帮助。

这是一个有效的Plunk

答案 1 :(得分:-3)

这是一个演示/示例,显示了在两个不同角度模块之间共享数据的方法:您应该修改代码并根据您的需要/用途使用

angular.module('app.A', [])
.service('ServiceA', function() {
    this.getValue = function() {
        return this.myValue;
    };

    this.setValue = function(newValue) {
        this.myValue = newValue;
    }
});

angular.module('app.B', ['app.A'])
.service('ServiceB', function(ServiceA) {
    this.getValue = function() {
        return ServiceA.getValue();
    };

    this.setValue = function() {
        ServiceA.setValue('New value');
    }
});

谢谢&干杯: - )