gpt4 book ai didi

angularjs - AngularJS中$scope和scope的区别

转载 作者:行者123 更新时间:2023-12-02 22:35:59 25 4
gpt4 key购买 nike

我是 AngularJS 的新手。我想知道 AngularJS Controller 中的 $scope 和 AngularJS 指令中的 scope 之间有什么区别。

我尝试在 Controller 中使用范围,但收到以下错误:

Error: [$injector:unpr] Unknown provider: scopeProvider <- scope

最佳答案

$scope$scopeProvider 提供的服务。您可以使用 Angular 的内置依赖注入(inject)器将其注入(inject) Controller 、指令或其他服务中:

module.controller(function($scope) {...})

这是 的简写

module.controller(['$scope', function($scope) {...}])

在第一个版本中,依赖注入(inject)器根据函数参数的名称(“$scope”+“Provider”)推断提供者的名称(“$scopeProvider”)。第二个版本也像这样构建提供程序名称,但在数组中使用显式 '$scope',而不是函数参数名称。这意味着您可以使用任何参数名称而不是 $scope

因此你最终会得到如下代码:module.controller(['$scope', function(scope) {...}])其中 scope 可以是任何内容,它是函数参数名称,可以是 fooa12342saa

依赖注入(inject)器基本上是这样做的:

function controller(def) {
//def[def.length-1] is the actual controller function
// everything before are it's dependencies

var dependencies = [];
for(dep in def.slice(0, def.length-1)) {
dependencies.push(__get_dependency_by_name(dep));
}
def[def.length-1].apply(dependencies);
}

我认为使用“scope”而不是“$scope”作为依赖项名称不起作用的原因现在已经很清楚了。没有定义“scopeProvider”。

关于angularjs - AngularJS中$scope和scope的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30234637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com