繁体   English   中英

AngularJs $ scope参数名称

[英]AngularJs $scope parameter name

我对AngularJs很陌生。 在最初的章节中,我看到$ scope被使用,就像在控制器内部一样。

<script>
var app = angular.module('app1', []);
app.controller('ctrl1', function($scope) {
    $scope.fn = "John";
    $scope.ln = "Parker";
});
</script>

如果我用$ s左右替换函数参数$ scope ,那么代码将无法正常工作。 这是为什么?

我的意思是,看起来我们正在传递一个回调函数左右,那么为什么参数名称很重要?

请帮忙。

提前致谢
u路

范围是引用应用程序模型的对象。 它是表达式的执行上下文。 范围以模仿应用程序DOM结构的层次结构进行排列。 范围可以监视表达式并传播事件。

$scope是AngularJS提供的对象,它是HTML(视图)和控制器之间的绑定部分,您无法按期望的方式对其进行更改。

我建议你请阅读手册

Angular重新编译代码,并根据需求进行依赖项注入。 但是,更好的做法是以这种方式编写控制器:

app.controller('testCtrl', ['$scope', function($scope){}]);

该代码甚至可以处理文件混淆。 您可以尝试以下链接以对此有更好的了解。

了解依赖注入

您可以重命名$ scope,但需要添加一些字符串映射(以便angularjs找出如何注入正确的项)。 此功能主要用于缩小:

var app = angular.module('app1', []);

app.controller('ctrl1', ['$scope', function($s) {
    $s.fn = "John";
    $s.ln = "Parker";
}]);

JSFIDDLE

顺便说一句,最好停止使用$ scope并开始使用controlleras功能。 在这里阅读。

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>

JSFIDDLE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM