我发现了一个类似的问题here,但要么我不理解答案,要么可能不是完全相同的问题。
在components的angularjs指南中,有多个视图示例,其中在ctrl变量之前使用$符号,如下所示:
Name: {{$ctrl.hero.name}}<br>
在heroDetails控制器中,ctrl变量之前没有$符号。如果我删除了heroDetails.html中的$符号,它就不再有效了。
有人可以向我解释一下吗?
提前感谢您的回答。
答案 0 :(得分:2)
controller
属性是对控制器实例的引用,将由组件使用。视图中控制器的名称是使用controllerAs
属性声明的。如果您未说明controllerAs
,则默认值为$ctrl
。所以$符号只是名称的一部分。
angular.module('heroApp').component('heroDetail', {
templateUrl: 'heroDetail.html',
controller: HeroDetailController, // the controller class
controllerAs: 'whatever', // the controller alias in the view - default $ctrl
bindings: {
hero: '<',
onDelete: '&',
onUpdate: '&'
}
});
答案 1 :(得分:2)
制作Component
时,其控制器在视图中标识为$ctrl
。
-------------------------------------------------
| Directive | Component |
--------------|-------------------------|-----------------------|
| controllerAs | Yes (default: false) | Yes (default: $ctrl) |
----------------------------------------------------------------
符号$
是Angular用于其自身变量/属性的前缀。