我想发送一个数组,填充从控制器1到控制器2的对象。但是我在控制器2中得到的是一个空数组。我得到一个填充的唯一方法是当我在我的服务中创建一个静态数组。在控制器之间共享数据AngularJS
我的服务
app.service('myData', function() {
this.myData = [];
this.addData = function(data) {
this.myData.push(data);
}
this.getData = function() {
return this.myData;
}});
控制器1的设置数据
app.controller('controller1',['$scope', 'myData', function($scope, myData) {
$scope.addData = function(index, name) {
myData.addData({index: index, name: name});
}}]);
控制器2看起来像这样
app.controller('controller2',['$scope', 'myData', function($scope, myData) {
$scope.myData = myData.getData();
$scope.$watch('myData.getData()', function(data){
console.log(data);
});
console.log($scope.myData);}]);
当我在寻找一个答案,我发现的问题很多几乎和我的相似。唯一的区别是我从我的控制器中填充我的服务,而不是创建静态服务。
我的console.logs都返回一个空数组。为什么是这样?
你需要使用根范围内或一个像我的广播或事件 – Rafa
你的手表似乎有点陌生的沟通机制。试试这个'function(){return myData.getData()}'而不是'data.getData()' –