AngularJS中的$ scope是什么?

时间:2014-06-23 07:11:13

标签: javascript angularjs scope

我是AngularJS的新手,我无法理解AngularJS中的$scope。 有人可以用最简单的方式解释$scope在AngularJS中做了什么以及我们可以用它做什么。请解释一下,你会解释一个完全没有编程知识的人。也有人可以用最简单的方式逐行解释下面的代码吗?

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

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

2 个答案:

答案 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)

Read The Following Manual

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

相关问题