javascript - Angularjs - 在 Controller 之间共享数据

标签 javascript angularjs

有两个 Controller 。一个 Controller 将数据写入对象,另一个 Controller 需要读取它。我的 app.js 文件中是否可以有一个全局变量,可以在两个 Controller 中使用。我很困惑,为什么需要使用服务在 Controller 之间共享数据? 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'
});

写入 Controller 中所做的更改不会反射(reflect)到读取 Controller 中吗?在这种情况下,控制台必须显示“消息已写入”。

最佳答案

您可以从 $rootScope 读取数据或向 $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';
});

关于javascript - Angularjs - 在 Controller 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074618/

相关文章:

javascript - 如何在鼠标悬停时定位自定义工具提示,相当于在图表属性中的事件加载上使用 Chart.renderer.text 的默认工具提示

javascript - 如何将现有 ul 的所有 li 添加到另一个基于其 css 类的 ul 的底部

javascript - 最好使用 Angular 将非 JSON 文件更改为真正的 JSON 文件

javascript - 将附加对象传递给第 3 方回调

javascript - 从 javascript 中的字符串中删除 "\"

javascript - 仅提交表单中的非空字段

javascript - 两次验证之间的 Angular 过滤器不起作用?

javascript - Angular js 服务/工厂属性行为

angularjs - Laravel angularJS CORS 使用 barryvdh/laravel-cors

css - 用于在小型/移动显示器上隐藏元素的 Angular Material 指令