javascript - 如何获取/设置 Controller /模块之外的变量?

标签 javascript angularjs get set

假设我有一个预定义的模块/ Controller ,它将苹果设置为绿色。

var _core = angular.module('_core', []);
_core.controller('mainController', function($scope, $controller, $http) {
    $scope.apple = 'green';
});

我可以把苹果放在 Controller 外面吗?类似的东西。

_core.mainController.apple

这可能吗?我还需要使用外部插件设置变量,抱歉我是一个完全 Angular 菜鸟,这有点令人畏惧。

最佳答案

如果您希望 Controller 外部可以访问该值,则可以将其存储在 $rootScope 中而不是 $scope 中,并且可以直接使用存储在$rootScope 可注入(inject)的地方。所以代码就变成了:

var _core = angular.module('_core', []);
_core.controller('mainController', function($scope, $controller, $http, $rootScope) {
    $rootScope.apple = 'green';
});

现在在其他地方比如工厂,您可以将其用作:

var _core1 = angular.module('_core1', []);
_core1.factory('someFactory', function($scope, $rootScope, $http) {
  var fruit = $rootScope.apple;
//variable fruit now contains green
});

关于javascript - 如何获取/设置 Controller /模块之外的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261107/

相关文章:

javascript - 是什么阻止 querySelectorAll 在此代码中处理具有相同类的所有元素?

javascript - AngularJS - 在文件输入上将图像加载到 img 标签

php - 将 Javascript 数组传递给 PHP 文件

javascript - 等待数据返回,与 Angular 和 Breeze 同步调用

javascript - Cordova Instagram 插件 : using with JPG images?

javascript - 无法通过 ID 访问 SVG

java - Java 中的 getter 和 setter

javascript - EXTJS:Sencha CMD 生产版本不会删除 console.log 语句

javascript - Knockout Js 模板不显示数据

javascript - 如何在 div 中制作响应式文本?