angularjs中的$ ctrl是什么?什么时候在视图上使用$ ctrl vs $ scope?

时间:2018-10-22 09:52:05

标签: angularjs

在视图中使用示例$ctrl

<b>Heroes</b><br>
<hero-detail ng-repeat="hero in $ctrl.list" 
             hero="hero" 
             on-delete="$ctrl.deleteHero(hero)" 
             on-update="$ctrl.updateHero(hero, prop, value)">
</hero-detail>

何时使用$ctrl和何时使用$scope与视图进行交互?

https://docs.angularjs.org/guide/component

1 个答案:

答案 0 :(得分:0)

在视图中,您可以将别名绑定到控制器,从而轻松引用$scope变量。 当您嵌套controllers and you dont want to reference something from a different controller. since $ scope`遵循分层数据结构时,这很有用。

因此,为了确定控制器的范围,可以使用此语法。

例如,有两个控制器,两个控制器都具有相同的变量“名称”,您可以执行以下操作:

<body ng-controller="ParentCtrl as ptr">
<input ng-model="name" /> {{ptr.name}}

<div ng-controller="ChildCtrl as chl">
    <input ng-model="name" /> {{chl.name}} - {{ptr.name}}
</div>

这使得引用范围变量变得容易。

<b>Heroes</b><br>
<hero-detail ng-repeat="hero in $ctrl.list" 
             hero="hero" 
             on-delete="$ctrl.deleteHero(hero)" 
             on-update="$ctrl.updateHero(hero, prop, value)">
</hero-detail>
如果您使用的是angulajs1.5,则

components的后角,其默认别名为$ctrl,当然您可以覆盖它。