我对AngularJs很陌生。在最初的章节中,我看到使用了$ scope,就像在控制器内部一样。
<script>
var app = angular.module('app1', []);
app.controller('ctrl1', function($scope) {
$scope.fn = "John";
$scope.ln = "Parker";
});
</script>
如果我将功能参数 $ scope 替换为 $ s 左右,那么代码就不起作用了。为什么?
我的意思是看起来我们正在传递一个回调函数,那么为什么参数名称很重要?
请帮忙。
提前致谢
巴鲁
答案 0 :(得分:1)
Scope是一个引用应用程序模型的对象。它是一个 表达式的执行上下文。范围按层次排列 模仿应用程序的DOM结构的结构。范围可以 观察表达并传播事件。
$scope
是AngularJS提供的对象,它是HTML(视图)和控制器之间的绑定部分,您无法按照预期的方式对其进行更改。
我建议你阅读manual
答案 1 :(得分:1)
Angular重新编译代码并根据需求进行依赖注入。然而,更好的做法是以这种方式编写控制器:
app.controller('testCtrl', ['$scope', function($scope){}]);
即使对文件进行模糊处理,此代码也能正常工作。 您可以尝试以下链接来更好地理解这一点。
答案 2 :(得分:1)
您可以重命名$ scope,但是您需要添加一些字符串映射(因此angularjs将弄清楚如何注入正确的项目)。此功能主要用于缩小:
var app = angular.module('app1', []);
app.controller('ctrl1', ['$scope', function($s) {
$s.fn = "John";
$s.ln = "Parker";
}]);
顺便说一句,最好停止使用$ scope并开始使用controlleras功能。阅读它here。
var app = angular.module('app1', []);
app.controller('ctrl1', function() {
this.fn = "John";
this.ln = "Parker";
});
<div ng-app="app1" ng-controller="ctrl1 as vm">
{{vm.fn}}
</div>