它是明智的数据存储在$ rootScope。 我有一个使用它每100ms即将传感器数据的科尔多瓦应用程序。 对我来说,使用多个控制器的数据我使用的是被刷新每100ms $ rootScope.sensorData变量。 它是正常的使用这种方式? 有没有更好的办法做到这一点?
谢谢
它是明智的数据存储在$ rootScope。 我有一个使用它每100ms即将传感器数据的科尔多瓦应用程序。 对我来说,使用多个控制器的数据我使用的是被刷新每100ms $ rootScope.sensorData变量。 它是正常的使用这种方式? 有没有更好的办法做到这一点?
谢谢
你可以把它存放在工厂。 在AngularJS厂是单身,创建因此只有实例。
myApp.factory('SensorSrv', function SensorSrv() {
var sensorData;
return {
setData: setData,
getData: getData
};
function setData(data) {
sensorData = data;
}
function getData() {
return sensorData;
}
});
您也可以用户本地存储,如果你想坚持的数据。
我认为这是不使用$ rootScope在整个代码逻辑不错的主意,有很多背后的原因......取而代之的是,你可以在服务创建代码登录更灵活......,你也可以看到此链接
在一个Angularjs应用程序中使用$ rootscope最佳实践?
从官方文档:
$rootScope
存在,但它可用于邪恶在角范围形成的层次结构,从根范围在树的顶部prototypally继承。 这通常可以忽略不计,因为大多数的观点有一个控制器,因此示波器自己的。
偶尔有,你想使全球对整个应用程序的数据块。 对于这些,你可以注入
$rootScope
,并设置其值像任何其他范围。 由于示波器从根范围继承,这些值将提供给连接到像NG-节目就像在本地值指示表达式$scope
。当然,全局状态和吮吸你应该使用
$rootScope
谨慎,就像你(希望)以任何语言的全局变量使用。 尤其是,不要使用它的代码,唯一的数据。 如果你很想把功能上$rootScope
,它几乎总是更好地把它在需要的地方,也更容易测试可以注射的服务。反之,不创建其唯一目的在生活中是存储和返回数据的比特的业务。
- AngularJS其他常见问题解答
我建议使用app.value app.value('test', 20);
因为通过使用$ rootScope你暴露该值,这可能是一个安全威胁的所有服务。 通过使用值可以确保您需要根据您的要求使用该变量在哪里。