2016-04-28 2 views
1

ich bin neu zu kantig formly. Ich möchte eine benutzerdefinierte Vorlage für eine Schaltfläche erstellen. Code snippten unten gegeben als Referenz.eckig formular taste benutzerdefinierte typ

<script type="text/ng-template" id="button.html"> 
    <md-button class={{to.class}} ng-click={{to.method}}>{{to.label}}</md-button> 
</script> 

Problem ist heitlich gibt mir einen Fehler, während die Richtlinie ng-Klick-Verarbeitung, da Richtlinie {{to.method}} noch nicht bewertet worden.

Ist es nicht möglich, so etwas zu tun? Keines der winkelförmigen Beispiele macht Knopf als Vorlage, ist es konzeptionell falsch, dies formell zu tun?

EDIT:

Im Folgenden sind die entsprechenden benutzerdefinierten Vorlage und JSON:

Ich habe ein eigenes Template erstellt für Knopf als:

<script type="text/ng-template" id="button.html"> 
    <md-button class={{to.class}} ng-click="{{to.method}}">{{to.label}}</md-button> 
</script> 

und JSON entspricht, ist als:

{ 
type: 'button', 
templateOptions: { 
    label: 'Create Item', 
    class: 'md-raised md-primary', 
    method: 'createItem' 
} 

Genauer Fehler ist folgt:

Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{to.method}}] starting at [{to.method}}].

+1

wo Sie das Objekt 'to' definiert haben. Sende den vollständigen Code. Wenn möglich, veröffentlichen Sie einen Fiddle-Link, um schnellere Ergebnisse für Ihr Problem zu erhalten. –

+0

@StarkButtowski Ich habe den Code in Frage gestellt. Überprüfen Sie bitte das. – Rohit

Antwort

1

Ich hatte ein ähnliches Problem, und hier ist, was ich getan habe, um es zu lösen. Stellen Sie für andere, die das gleiche Problem haben, da Dokumentation auf Schaltflächen scheint minimal zu sein.

Hinweis: Sie benötigen keine geschweiften Klammern auf Winkel Attribute

Einstellen der Art:

formlyConfig.setType({ 
 
    name: 'button', 
 
    template: '<button class="{{to.class}}" ng-click="to.method()">{{to.label}}</button>' 
 
});

Dann, wo Sie es in Ihre Form sind und fügte hinzu:

{ 
 
    key: 'myBtn', 
 
    type: 'button', 
 
    templateOptions: { 
 
    class: 'btn-primary', 
 
    label: 'My Test Button', 
 
    method: function() { 
 
    alert('test'); 
 
    console.log('test'); 
 
    } 
 
    } 
 
}

Prost!

+0

Wie kann ich einen neuen Typ in meinen Code integrieren? das ist formlyConfig.setType ..... –

Verwandte Themen