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元素的“对象”。 所有子元素都可以读取和修改范围数据(除非您在新范围中修改原语或将它们分离)。