我是AngularJS的新手,我无法理解AngularJS中的$scope
。
有人可以用最简单的方式解释$scope
在AngularJS中做了什么以及我们可以用它做什么。请解释一下,你会解释一个完全没有编程知识的人。也有人可以用最简单的方式逐行解释下面的代码吗?
function MyController($scope) {
$scope.username = 'World';
$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.username + '!';
};
};
答案 0 :(得分:55)
每个控制器都有一个关联的$scope
对象。
控制器(构造函数)函数负责设置模型属性和函数。这只能通过$ scope来完成。无论您在View(html文件)中应用什么功能或模型,都可以使用范围在控制器中访问。
只能在HTML /视图中访问此$ scope对象上定义的方法。示例 - 来自ng-click,过滤器等
现在让我们一个一个地举例 -
<强> 1 强>
function MyController($scope) {
$scope.username = 'World';
};
在上面的示例中,您将定义名为username的任何属性,其值为“World”。假设在html文件中你有以下代码行 -
<div ng-controller="MyController">
<h1>{{data.username}}</h1></div>
这将自动从控制器中获取值并将其显示在屏幕上。值得注意的是&#34;数据。&#34;在标记中是html页面可以引用控制器的控制器的名称。这通常在控制器内或html文件的顶部定义。
<强> 2 强>
$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.username + '!';
};
这是您在控制器中定义的功能,您可以通过以下代码访问该控制器 -
<div ng-controller="MyController">
<h1>{{data.greeting}}</h1></div>
这里,data.greeting将自动从sayHello函数中选择值,即显示的值将是&#34; Hello World&#34;。 &#34;世界&#34;来自用户名与之前连接的“Hello”。
我希望这能清除你的怀疑。 :)
答案 1 :(得分:7)
换句话说,范围是一个“对象”,它“绑定”到应用控制器的DOM元素。 所有子元素都可以读取和修改范围数据(除非您修改新范围中的基元或它们是隔离的)。