2016-04-17 5 views
0

Ich fand eine ähnliche Frage here aber entweder ich verstehe die Antworten nicht oder vielleicht ist es nicht genau die gleiche Frage.

Im AngularJS Führung auf components gibt es mehrere Beispiele von Ansichten, in denen ein $ -Zeichen vor einer Abfrage Variable verwendet wird, wie in der folgenden:

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

Im heroDetails Controller gibt es kein $ -Zeichen vor dem Strg-Variable. Wenn ich die $ -Schilder in der heldDetails.html entferne, funktioniert es nicht mehr.

Kann mir bitte jemand erklären?

Vielen Dank im Voraus für Ihre Antworten.

Antwort

2

Die Eigenschaft controller ist der Verweis auf die Controller-Instanz, die von der Komponente verwendet wird. Der Name des Controllers in der Ansicht wird mit der Eigenschaft controllerAs deklariert. Wenn Sie nicht controllerAs angeben, ist der Standardwert $ctrl. Also ist das $ -Zeichen nur ein Teil des Namens.

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

Wenn Sie ein Component machen, wird sein Controller in der Ansicht als $ctrl identifiziert.

Es ist in der Component documentation verwiesen:

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

Das Symbol $ das Präfix von Angular für seine eigenen Variablen/Eigenschaften verwendet wird.

Verwandte Themen