这个简单的角度控制器:
var WorldCtrl = function ($scope) {
$scope.population = 7000;
$scope.countries = [{name: 'India', population: 121}, {name: 'China', population: 178} ];
};
这个控制器在视图中以这种方式使用
<body ng-app>
<ul ng-controller="WorldCtrl">
<li ng-repeat="country in countries">
{{country.name}} has population of {{country.population}}
</li>
<hr>
World's population: {{population}} millions
</ul>
</body>
问题
WorldCtrl
是一个有计划的javascript函数对象还是它还有更多?WorldCtrl()
函数。这是怎么发生的?$scope
似乎是传递给WorldCtrl()
的参数/参数,但它不会那样。因为它是一个普通的参数,我们可以称之为WorldCtrl(foo),它仍然可以正常工作。但是$scope
似乎对命名&amp;仅在定义WorldCtrl($ scope)时有效。有谁解释了这个原因?$scope
似乎是一个角度创造的对象。由WorldCtrl
函数传递引用,不返回任何有用的东西。因此对$ scope的任何更改都会更改原始对象,然后角度会传递到视图中。正确的吗?答案 0 :(得分:2)
正如评论者所建议的那样,您应该仔细阅读文档并完成Angular tutorial。
要开始学习,我还强烈推荐egghead.io
Angular可以作为您应用程序的主干。因此,它增加了一些应该遵守的惯例。
例如,WorldCtrl可用作controller。
Angular使用dependency injection,负责让$scope工作。 $ scope不是“常规”参数。注入它意味着您告诉控制器函数您希望在其中使用$ scope对象。
以新的方式考虑您的应用程序。 您想要显示世界人口数据。因此,您需要一个能够完成这项工作的视图。视图是您的HTML标记。每个视图都应绑定到自己的控制器。控制器包含视图逻辑并向其提供数据。例如,您可以执行以下操作:
$scope
对象提供数据。