什么是美元($)签到angularjs

时间:2016-04-17 14:53:47

标签: angularjs

我发现了一个类似的问题here,但要么我不理解答案,要么可能不是完全相同的问题。

components的angularjs指南中,有多个视图示例,其中在ctrl变量之前使用$符号,如下所示:

Name: {{$ctrl.hero.name}}<br>

在heroDetails控制器中,ctrl变量之前没有$符号。如果我删除了heroDetails.html中的$符号,它就不再有效了。

有人可以向我解释一下吗?

提前感谢您的回答。

2 个答案:

答案 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

Component documentation

中引用了它
                   -------------------------------------------------
                  |        Directive        |       Component       |
    --------------|-------------------------|-----------------------| 
   | controllerAs | Yes (default: false)    |  Yes (default: $ctrl) |
    ----------------------------------------------------------------

符号$是Angular用于其自身变量/属性的前缀。