Angularjs - >如何以角度样式初始化变量

时间:2014-02-11 07:56:52

标签: javascript angularjs

我正在尝试使用angular.js重新编写应用程序,但我仍然看不到它是如何工作的(或多或少)。

例如。在我以前的代码中,我有一个函数,一旦所有内容都被加载了初始化变量,就可以在window.variable风格中为每个人访问。

现在我想要一样。

我的想法是建立一个工厂来返回一个包含所有变量的对象,然后让每个人都可以访问这个对象(不知何故)。

问题是: 我是对的吗?我应该通过工厂初始化变量? 2-如何在代码开头“调用”这种工厂方法?使用module.run函数?

干杯,

3 个答案:

答案 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>