Wenn ich versuche, das unten stehende json-Formular auszuwerten, gibt es einen Fehler -
%Vor%Warum ist das obige Formular nicht gültig?
Aber das Folgende funktioniert gut -
%Vor%Ich versuche, das obige JSON als eine Zeichenfolge als param-Eingabe für eine Direktive zu übergeben.
Unten ist der html -
%Vor%Danke, Murtaza
Setze deine json in ein paar Teile:
%Vor%Scheint jedoch nicht wie eine kantige Frage. Nicht sicher, was Sie versuchen zu tun:
Wie auch immer, übergeben den JSON an die Direktive gibt es viele Möglichkeiten, das zu tun. Ich bin mir nicht sicher, warum Sie das tun und nicht nur ein Objekt übergeben möchten.
Passing Json kann eine Menge Wege gemacht werden ...
Von Ihrem Attributobjekt:
%Vor%wo
%Vor%Aus einem isolierten Bereich:
%Vor%wo
%Vor% Aber es ist bei weitem besser, die native eval
um jeden Preis zu vermeiden, wenn du kannst. Was in fast allen Fällen möglich ist. Wenn Sie einige Daten haben, fügen Sie sie einfach in ein Objekt in einem Bereichsparameter ein und übergeben sie entweder über eine bidirektionale Eigenschaft in einem isolierten Bereich oder nach Namen und führen ein eckiges $ eval-Objekt aus.
BEARBEITEN: Übergeben Sie ein Objekt in ...
Sie können eine Zwei-Wege-Bindung für einen isolierten Bereich verwenden:
%Vor%wo
%Vor%Das wirklich coole Ding dabei ist, wenn Sie eine Bereichseigenschaft verwenden, wird sie bidirektional aktualisiert:
%Vor%wo
%Vor%Ich hoffe, das hilft.
Es sieht so aus, als ob Sie versuchen, ein Passwort in einem Formular zu bestätigen. Es gibt viele Möglichkeiten, dies zu tun, ohne auf JSON zurückgreifen zu müssen, um Werte in AngularJS weiterzugeben. Die nützlichste Ressource, die ich online gefunden habe, stammt aus diesem Google-Gruppen-Thread:
1) Ссылка wird vergleichen Wert in einem zweiten Feld mit Modell Wert des ersten Feldes
2) Ссылка vergleicht den Wert in einem zweiten Feld mit Eingabe Wert des ersten Feldes
Der Unterschied mag subtil sein, hat aber praktische Konsequenzen: mit (2) Die Bestätigungsüberprüfung tritt ein, sobald Sie mit der Eingabe beginnen alles im ersten Feld. Mit (1) wird die Bestätigung bestätigt Kick-in nur, nachdem das erste Feld gültig ist. In der E-Mail bestätigen Beispiel bedeutet dies, dass Sie erst dann keine Bestätigungsfehler anzeigen werden E-Mail-Validierungsfehler werden aussortiert (so kann sich ein Benutzer auf einen Fehler konzentrieren) Fehler zu der Zeit).
Quelle: Ссылка
Aus dem ersten Link wird die Direktive wie folgt verwendet:
%Vor% Wo die ui-validate-equals
-Direktive auf das email
-Modell zeigt, das in der ersten Eingabe definiert wurde.
Es gibt einige StackOverflow-Antworten , wenn Sie auch nach weiteren Ideen suchen möchten, um Ihr Problem zu lösen .
Siehe auch . @Blesh hat nur beiläufig erwähnt, aber nicht hervorgehoben: Angular bietet Ihnen eine 'sichere' Version von eval()
, die perfekt für die Übergabe deklarativer Objekte / Arrays in Ihre Direktive funktioniert, wenn Sie sie nicht auf Ihrer deklarieren wollen Umfang und weise nicht wollen, native eval()
zu verwenden. Im Beispiel des OPs verwenden Sie dies einfach innerhalb der Direktive:
Tags und Links angularjs