2016-07-21 6 views
0

Ist es möglich, eine einzelne Worteigenschaft (eine ohne Wert) in einem AngularJS-Direktiven-Tag zu erfassen, anstatt einen Wert zuzuweisen, und diesen Wert in Controller verfügbar zu haben?Eigenschaften ohne Wert in AngularJS-Richtlinientag

Zum Beispiel:

<my-input type="radio" checked></my-input> 

... statt checked="true" eingegeben werden zu erfordern.

Es gibt eine Lösung für den Zugriff auf diese Werte in der link einer Direktive (Attribute without value in AngularJS directive), aber es ist mir unklar, wie ich auf diese Werte in der Steuerung zugreifen kann.

Antwort

1

Sie können attrs im Controller verwenden viel, wie Sie in ihrem Umfang können.

app.directive('myInput', [function() { 
    return { 
     restrict: 'E', 
     controller: function($scope,$element,$attrs){ 
     } 
    }; 
}]); 

Blick auf the $compile/directive definition object official doc, aber auf dem Controller Konstruktorfunktion zum Abschnitt nach unten scrollen.

Der Controller ist injizierbare (und unterstützt Notation Klammer) mit folgenden Einheimischen:

$ Umfang - Umfang Strom mit dem

Element zugeordnet

$ element - Aktuelle Element

$ attrs - Aktuelles Attributobjekt für das Element

$ transclude - Eine Funktion zum Verlinken von Verknüpfungen, die an den korrekten Bereich für die Übertragung gebunden ist

-1

In HTML

<input type="checkbox" ng-model="msngModel" ng-change='saveChanges(msngModel)' ng-true-value="'YES'" ng-false-value="'NO'"> 

Kontroller

scope: { 
       msngModel: "=?", // other scope items 

      },