Angularjs 如何正确地包含全局变量并在Angular JS中更新它们?

Angularjs 如何正确地包含全局变量并在Angular JS中更新它们?,angularjs,Angularjs,假设我的应用程序有一个变量“globalFruits”,它跟踪我的应用程序中的所有“果实” 变量globalFruits={} 全球水果['Pear']={名称:'Pear',颜色:'green'}; globalFruits['Apple']={名称:'Apple',颜色:'Blue'} 这个全局变量应该如何包含在我的AngularJS应用程序中,这样我就可以有指令或作用域来调用它并检查它的状态?或者这不是AngularJS的方式吗?有一个模型可以用于类似的事情 app.config(['$r

假设我的应用程序有一个变量“globalFruits”,它跟踪我的应用程序中的所有“果实”

变量globalFruits={}

全球水果['Pear']={名称:'Pear',颜色:'green'}; globalFruits['Apple']={名称:'Apple',颜色:'Blue'}

这个全局变量应该如何包含在我的AngularJS应用程序中,这样我就可以有指令或作用域来调用它并检查它的状态?或者这不是AngularJS的方式吗?

有一个模型可以用于类似的事情

app.config(['$rootScope', function ($rootScope) {
    $rootScope.fruits = [
        {name:'Pear', color:'green'},
        {name:'Apple', color:'Blue'}
    ];
}]);
您可以在HTML视图中像往常一样使用:

<ul>
    <li ng-repeat="fruit in fruits">{{ fruit.name }}</li>
</ul>
  • {{fruit.name}
要调试浏览器中的范围变量,您可能需要安装并使用Google Chrome的扩展

更多信息

您可以为模块定义一个

app.value('globalFruits', {
  Pear: {name:'Pear', color:'green'},
  Apple: {name:'Apple', color:'Blue'}
);
然后,您可以在需要使用该值时注入该值:

app.controller('MyController', ['$scope', 'globalFruits', function($scope, globalFruits) {
  $scope.globalFruits = globalFruits;
}]);

如果它是全局的,你可以从angularJS调用它?我知道如何在不使用angularJS的情况下声明它,但我想知道是否有一些适当的约定可以这样做。特别是当我说,我希望globalFruits能够影响我的页面多个方面的某些UI元素。