AngularJS: die übergabe von boolean-Wert, der Richtlinie
Kann ich nicht passieren booleschen Wert meine Richtlinie.
Hier ist mein HTML:
<city-zip city="clientCity" zip="clientZip" requiredParam="'true'"></city-zip>
Richtlinie:
.directive('cityZip', function() {
return {
restrict: 'E',
templateUrl: '../templates/templateCityZip.html',
scope: {
city: '=',
zip: '='
},
controller: function($scope) {}
}
});
Jede Hilfe wäre sehr geschätzt werden.
Erstellen Sie einfach eine scope-variable, um diese zu überprüfen. Theres keine Notwendigkeit zu übergeben als string. Sollten Sie als variable übergeben
InformationsquelleAutor be-codified | 2015-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
HTML
Winkel
überprüfen Sie nun, bearbeitet '-param=', war 'requiredParam='
Ich habe dies geändert. Sie können bitte werfen Sie einen Blick auf meinen unteren Kommentar über ng-erforderlich?
Kommentar hat mich gerettet. Ich vergessen in Eckigen nehmen Sie die camelCaseNames und machen Sie alle-komisch-mag.
AKA "snake case"
InformationsquelleAutor Dmitri Algazin
Innen
link
können Sie das Attribut Zugriff:Werde, zwingen Sie den string-Wert in einen booleschen (wenn der string-Wert ist 'true', es wird true zurückgegeben, ansonsten werde es "false" zurück.)
Den wichtigsten Teil hier ist, wie zu konvertieren einen string mit dem Wert "true" oder "false" boolean form, da
!!'true'
und!!'false'
beide true zurück. Sehen diese Antwort für die Lösung und erweiterte Diskussion.Wenn Sie müssen, verwenden Sie den Wert in Ihrem controller, können Sie das gleiche Muster in der
scope
- Objekt und übergeben es in seiner gezwungenen form an den controller gekoppelt.var requiredParam == attrs.requiredParam === 'true'
.Danke für deine Antwort. Meine Richtlinie ist arbeiten nicht möglich, weil link und controller gleichzeitig? Können Sie zeigen Sie mir, wie Sie dazu im controller? Ich selbst weiß nicht, warum link ist für.
Ich würde vorschlagen, das Lesen der AngularJS Dokumentation für Richtlinien, die es bietet ziemlich gute Erklärung, wie link.
InformationsquelleAutor Josh Beam
Ich denke die einfachste /sauberste Antwort wurde noch nicht aufgenommen worden, für diese Frage. Diese Antwort passt auch innerhalb der HTML5-Spezifikation für ein Boolesches Attribut - http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes
HTML:
Sowie die Richtlinie:
Einfach, passt sauber mit HTML5-Spezifikation für Boolesche Attribute, und keine Notwendigkeit zu zwingen, einen string an eine scope-variable (
'requiredParam': '='
).Beachten Sie in dem Beispiel-code oben, wenn minified, die erforderlichen Variablen
$scope
und$attrs
wird sich ändern, um eine kürzere Zeichenfolge und den code brechen, aber das ist ein anderes Thema.Ich bin mir nicht ganz verfolgen, da es schon eine Weile her, ich arbeitete an diesem Problem. Können Sie ein Beispiel geben, das problem und/oder was Sie gefunden haben, besser zu arbeiten, für die Nachwelt?
Sie müssen nur
ng-attr-
mit diesem ein.InformationsquelleAutor ryanm
Gibt es 3 Parameter, die Sie übergeben können, die link-Funktion die Arbeit an der Richtlinie. Parameter sind
scope
,element
undattributes
.scope
gibt den Umfang der Steuerung, die Richtlinie ist unter.element
übergibt die Informationen über die DOM-element, auf das es angewendet wirdAttribute übergibt die Informationen über alle DOM-element Attribute, die auf das element.
})
Arbeiten jsFiddle
Das ist eine Arbeit, ich habe vergessen zu binden requiredParam (setzen Sie Sie in geschweifte Klammern).
InformationsquelleAutor Lalit Sachdeva