有两个控制器。一个控制器将数据写入对象&另一个控制器需要读取它。我可以在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'
});
写入控制器中所做的更改是否会反映到读取控制器中?在这种情况下,控制台必须写有'消息'。
答案 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)
我不会建议编写全局变量然后在控制器之间共享数据。 而不是那样,您可以与服务和工厂共享更简单的数据。