$ scope函数参数来自哪里?

时间:2016-02-03 19:57:03

标签: javascript angularjs

在以下代码段中,我无法理解一些基本细节。 当您声明一个函数时,在括号之间放置通常占位符。 在这种情况下,$scope是占位符。但也是一个保守的词。

var messages = {};
messages.someText = 'You have started your journey.';
function TextController($scope) {
  $scope.messages = messages;
}

为什么不写简单

function TextController() { 
  $scope.messages = messages;
}

$scope参数来自哪里?谁在发射它?

由于

2 个答案:

答案 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']);