Angularjs - 在控制器之间共享数据

时间:2014-11-22 06:10:04

标签: javascript angularjs

有两个控制器。一个控制器将数据写入对象&另一个控制器需要读取它。我可以在app.js文件中有一个全局变量,可以在两个控制器中使用。我很困惑,为什么需要使用服务来在控制器之间共享数据? app.js ::::::

var msg = 'message init'
app.controller('readController', function($scope){
      $scope.msg = msg
      console.log(msg)
});
app.controller('writeController', function(){
      msg = 'message is written'
});

写入控制器中所做的更改是否会反映到读取控制器中?在这种情况下,控制台必须写有'消息'。

2 个答案:

答案 0 :(得分:1)

您可以从/向$ rootScope读取和写入数据。对于简单数据,我认为您不需要服务。但请记住,这可能不是一个好的设计。

app.controller('readController', function($scope, $rootScope){
  $scope.myMsg = $rootScope.msg;
  console.log($scope.myMsg);
});

app.controller('writeController', function($rootScope){
  $rootScope.msg = 'message is written';
});

答案 1 :(得分:0)

我不会建议编写全局变量然后在控制器之间共享数据。 而不是那样,您可以与服务和工厂共享更简单的数据。