我有一个变量,我在rootscope中声明要与其他控制器共享。
我还需要在根镜中放置多个变量。
从语法上讲,你会怎么做。
这是我在rootscope中声明一个变量的定义。
(function (module)
{
angular.module("sample", []).run(["$rootScope", function($rootScope){$rootScope.TaxPercent = 30;}]);
.
.
.
}
答案 0 :(得分:1)
$rootScope
是一个对象,所以只需指定属性:
$rootScope.TaxPercent1 = 30;
$rootScope.TaxPercent2 = 40;
或者
$rootScope.TaxPercent = {percent1: 30, percent2: 40}; // SET
console.log($rootScope.TaxPercent.percent1); // GET
但不是:
$rootScope = {percent1: 30, percent2: 40};
因为您将覆盖对象的所有先前数据集
答案 1 :(得分:1)
一般来说,$rootScope
不应该用于分享变量,因为之前已经在以下文章中解释了不同的原因:
here
如果您忘记了$rootScope.TaxPercent = 30;
全局变量,然后在控制器中创建变量$scope.TaxPercent
,会发生什么?这肯定会引起问题。
在此处提供一个选项并建议使用Angular Services
以下是Angular Service工作方式的sample example
从Angular FAQ页面:
当然,全局状态很糟糕,你应该谨慎使用$ rootScope,就像你希望用任何语言的全局变量一样。特别是,不要将它用于代码,只用于数据。如果您想在$ rootScope上添加一个函数,那么将它放在一个可以在需要的地方注入的服务并且更容易测试时几乎总是更好。