AngularJS中的$ scope是什么?

我是AngularJS的新手,我不明白AngularJS中的$scope是什么。 有人可以请尽可能简单地解释$scope在AngularJS中做什么,我们可以用它来做什么。 请用一种完全不懂编程的人来解释。 也可以有人以最简单的方式逐行解释代码吗?

 function MyController($scope) { $scope.username = 'World'; $scope.sayHello = function() { $scope.greeting = 'Hello ' + $scope.username + '!'; }; }; 

每个控制器都有一个关联的$scope对象。

控制器(构造函数)function负责设置模型属性和function。 这只能通过$ scope来完成。 无论您在View(html文件)中应用哪种函数或模型,都可以使用范围在控制器中访问。

只有在这个$ scope对象上定义的方法才能从HTML / view中访问。 示例 – 从ng-click,filter等

现在让我们一个接一个的例子 –

1。

  function MyController($scope) { $scope.username = 'World'; }; 

在上面的示例中,您正在定义名为username的任何属性,其值为“World”。 假设在html文件中有以下代码行 –

 <div ng-controller="MyController"> <h1>{{data.username}}</h1></div> 

这将自动从控制器中获取值并显示在屏幕上。 值得注意的是“数据”。 在标记中是html页面可以引用控制器的控制器的名称。 这通常是在控制器中定义或在HTML文件的顶部。

2。

 $scope.sayHello = function() { $scope.greeting = 'Hello ' + $scope.username + '!'; }; 

这是您在控制器中定义的function,您可以通过以下代码访问该控制器 –

 <div ng-controller="MyController"> <h1>{{data.greeting}}</h1></div> 

在这里,data.greeting会自动从sayHello函数中选取值,即显示的值将是“Hello World”。 “世界”从用户名与“你好”连接在一起。

我希望这清除你的怀疑。 🙂

阅读以下手册 。

换句话说,作用域是一个“绑定”到应用控制器的DOM元素的“对象”。 所有子元素都可以读取和修改范围数据(除非您在新范围中修改原语或将它们分离)。