在以下代码段中,我无法理解一些基本细节。
当您声明一个函数时,在括号之间放置通常占位符。
在这种情况下,$scope
是占位符。但也是一个保守的词。
var messages = {};
messages.someText = 'You have started your journey.';
function TextController($scope) {
$scope.messages = messages;
}
为什么不写简单
function TextController() {
$scope.messages = messages;
}
$scope
参数来自哪里?谁在发射它?
由于
答案 0 :(得分:3)
$scope
不是全局变量,因此语法会引发错误。
请查看Dependency Injection在Angular中的工作原理:
DI在整个Angular中都很普遍。您可以在定义组件或为模块提供运行和配置块时使用它。
当您的函数是Angular组件(如服务,指令,过滤器等)时,Angular知道何时向函数注入参数;所以当Angular看到你的声明中有一个带$scope
的控制器函数时,它知道在调用它时会注入正确的$scope
。
请注意,在您的代码中,您将无法找到$ scope,因为您在正常函数中使用它,而不是在某种Angular组件中使用它。我怀疑你错过了一些Angular基础知识,所以你应该学习更多知识,然后你会理解代码中的问题,这是基本的Angular。
答案 1 :(得分:0)
它会抛出错误。我认为你必须在控制器中声明它如下: angular.module('myApp')。controller('myContrroler',['$ scope']);