gpt4 book ai didi

javascript - 关于 Controller 的 Angular 文档

转载 作者:行者123 更新时间:2023-11-30 09:52:53 25 4
gpt4 key购买 nike

我最近在 Angular 文档 (https://code.angularjs.org/1.4.9/docs/guide/providers) 中读到这个:

myApp.controller('DemoController', ['clientId', function DemoController(clientId) {
this.clientId = clientId;
}]);

关联到:

<html ng-app="myApp">
<body ng-controller="DemoController as demo">
Client ID: {{demo.clientId}}
</body>
</html>

然后我很惊讶,因为 this 被用来代替注入(inject)的 $scope 服务。

我尝试重现成功,然后我想知道是否有人可以解释一个用例,其中使用 Controller 实例比注入(inject) $scope 更可取?

最佳答案

参见 John Papa's style guide about controllerAs :

... the controllerAs syntax is closer to that of a JavaScript constructor than the classic $scope syntax

It promotes the use of binding to a "dotted" object in the View (e.g. customer.name instead of name), which is more contextual, easier to read, and avoids any reference issues that may occur without "dotting".

Helps avoid using $parent calls in Views with nested controllers.

我在日常使用中发现的最大好处是,它在 Controller 中提供了命名空间的概念,而不仅仅是让“自由变量”在您的标记周围漫游。

如果您有嵌套 Controller ,这一点尤其重要,因为它提供了命名空间变量(即使是同名变量)的方法,但要确保它们位于正确 Controller 的上下文中。

关于javascript - 关于 Controller 的 Angular 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35465093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com