【发布时间】:2015-12-15 14:38:52
【问题描述】:
我正在尝试将一个充满对象的数组从控制器 1 发送到控制器 2。但我在控制器 2 中得到的只是一个空数组。我得到一个填充的唯一方法是在我的服务中创建一个静态数组。
我的服务
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 都返回一个空数组。这是为什么呢?
【问题讨论】:
-
您需要使用根范围或广播或事件等通信机制之一
-
你的手表对我来说有点奇怪。试试这个
function(){ return myData.getData() }而不是data.getData()
标签: angularjs angularjs-service