从这个网址https://github.com/angular/angular-seed/blob/master/app/js/app.js,我得到了一个如下控制器。
function WineListCtrl(Wine) {
this.wines = Wine.query();
}
到目前为止,我在angular中所做的是定义一个带有$ scope注入的控制器。所以我试过,将上面的控制器更改为
function WineListCtrl(Wine, $scope) {
console.log($scope, this)
this.wines = Wine.query();
}
但是这会出错:错误:'$scope'
的未知提供商。
我在这里有三个问题:
$scope
。this
中的WineListCtrl
表示$scope
。答案 0 :(得分:1)
以这种形式编写控制器时,应该为它们注入依赖关系,如下所示:
function WineListCtrl(Wine, $scope) {
console.log($scope, this)
this.wines = Wine.query();
}
WineListCtrl.$inject = ['Wine', '$scope'];
this
与$scope
不同。 $ scope是$rootScope.$new()
参见#1
答案 1 :(得分:1)
您正在使用“推断的依赖项”(请参阅DI page)哪个应该可以正常工作,除非您缩小或混淆JavaScript。
当您忘记在某处使用ng-app
或忘记使用相应的模块初始化您的应用时,通常会发生“未知提供商”错误: