以下文件"有效"(它不会抛出任何错误):
<!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>
Run Code Online (Sandbox Code Playgroud)
但是这个
<!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>
Run Code Online (Sandbox Code Playgroud)
给出错误:
错误:未知提供者:来自modx的$ rootScope
源文件:http
://code.angularjs.org/angular-1.0.0rc7.js行:2491
WTF?
Voj*_*jta 306
您无法在配置阶段询问 - 例如,您只能询问提供商.
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
});
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://docs.angularjs.org/guide/module.
我发现以下"模式"非常有用:
MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];
function MainCtrl (scope, rootscope, location, thesocket, ...) {
Run Code Online (Sandbox Code Playgroud)
其中,MainCtrl是一个控制器.我依赖于Controller函数的参数名称做一对一的模拟实例,这让我感到很不舒服,因为我担心我可能会更改名称和搞砸.我更喜欢为此目的明确使用$ inject.
归档时间: |
|
查看次数: |
114232 次 |
最近记录: |