我正在尝试使用angular.js重新编写应用程序,但我仍然看不到它是如何工作的(或多或少)。
例如。在我以前的代码中,我有一个函数,一旦所有内容都被加载了初始化变量,就可以在window.variable风格中为每个人访问。
现在我想要一样。
我的想法是建立一个工厂来返回一个包含所有变量的对象,然后让每个人都可以访问这个对象(不知何故)。
问题是: 我是对的吗?我应该通过工厂初始化变量? 2-如何在代码开头“调用”这种工厂方法?使用module.run函数?
干杯,
答案 0 :(得分:1)
我认为你应该尽量避免使用全局变量
但是如果你必须使用它们,你是对的,你可以在module.run
中初始化它们并在应用程序依赖项中添加模块
答案 1 :(得分:1)
如果要访问某些变量,必须查看$ rootScope,因为您可以在任何地方访问$ rootScope。
此外,您必须使用角度配置和运行功能。
我建议您不要使用全局范围,因为它会影响应用程序速度,内存泄漏等。
答案 2 :(得分:1)
我可能会将变量放在服务中,然后将其注入包装角度控制器。您希望访问这些“全局”变量的任何其他控制器将嵌套在包装控制器下,从而继承变量。
var app = angular.module("app", []);
app.service("globVars", function () {
var vars = {};
vars.someVar = "a";
vars.someOtherVar = "b";
return vars;
});
app.controller("WrappingCtrl", function ($scope, globVars) {
$scope.globVars = globVars;
});
app.controller("NestedCtrl", function ($scope) {
console.log($scope.globVars.someVar); // => "a"
});
<html ng-app="app">
<div id="wrapper" ng-controller="WrappingCtrl">
<div class="nested" ng-controller="NestedCtrl">
{{globVars.someVar}}
</div>
</div>
</html>