但是这个<" />

无法进入$ rootScope

angularjs

114021 观看

3回复

26189 作者的声誉

以下文件“有效”(它不会引发任何错误):

<!doctype html>
<html ng-app="modx">
    <script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script> 
    <script>
        angular.module("modx", [], function($routeProvider) {
        });
    </script>
</html>

但是这个

<!doctype html>
<html ng-app="modx">
    <script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
    <script>
        angular.module("modx", [], function($routeProvider, $rootScope) {
        });
    </script>
</html>

给出错误:

错误:未知提供程序:modx
源文件中的$ rootScope :http
://code.angularjs.org/angular-1.0.0rc7.js行:2491

WTF?

作者: Malvolio 的来源 发布者: 2012 年 5 月 7 日

回应 (3)


304

22603 作者的声誉

决定

例如,您不能在配置阶段询问-您只能询问提供者。

var app = angular.module('modx', []);

// configure stuff
app.config(function($routeProvider, $locationProvider) {
  // you can inject any provider here
});

// run blocks
app.run(function($rootScope) {
  // you can inject any instance here
});

有关更多信息,请参见http://docs.angularjs.org/guide/module

作者: Vojta 发布者: 07.05.2012 09:50

6

1422 作者的声誉

我发现以下“模式”非常有用:

MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];
function MainCtrl (scope, rootscope, location, thesocket, ...) {

其中,MainCtrl是控制器。我不满意依靠Controller函数的参数名称对实例进行一对一的模拟,因为担心我可能会更改名称并弄乱东西。我更喜欢为此目的显式使用$ inject。

作者: Ram Rajamony 发布者: 08.05.2013 08:51

0

1911 作者的声誉

不建议您像以前那样使用语法。AngularJs让你有不同的功能,只要你想(runconfigservicefactory,等。),这是更professional.In这个功能,你甚至不用来注入自己喜欢

MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];

如您所知,您可以使用它。

作者: Hazarapet Tunanyan 发布者: 27.04.2016 09:32
32x32