2016-04-17 15 views
0

私は同様の質問hereを見つけましたが、私は答えを理解していないか、まったく同じ質問ではないかもしれません。 heroDetailsコントローラで

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

、前には$記号が存在しない:$記号は、以下のようにCTRL変数の前に使用されるビューの複数の例が存在するcomponentsにangularjsガイドの

ctrl変数。私がheroDetails.htmlの$記号を削除しても、それ以上は動作しません。

誰でも私にそれを説明できますか?

ご回答いただきありがとうございます。

答えて

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: '&' 
    } 
}); 
2

あなたがComponentを行うと、そのコントローラが$ctrlとしてビューで識別されます。

Component documentationに参照されます:

    ------------------------------------------------- 
        |  Directive  |  Component  | 
    --------------|-------------------------|-----------------------| 
    | controllerAs | Yes (default: false) | Yes (default: $ctrl) | 
    ---------------------------------------------------------------- 

シンボル$は独自の変数/プロパティの角度で使用されるプレフィックスです。

関連する問題