registriert ein einfachen begrenzt Ember Lenker Helfer (Em.Handlebars.registerBoundHelper
)
Em.Handlebars.registerBoundHelper('mailTo', function (emailAddress, label) {
emailAddress = Em.Handlebars.Utils.escapeExpression(emailAddress);
label = (arguments.length == 2) ? emailAddress : Em.Handlebars.Utils.escapeExpression(label);
var link = '<a href="mailto:' + emailAddress + '">' + label + '</a>';
return new Em.Handlebars.SafeString(link);
});
Und es wie folgt verwenden:
simple mailto link:
{{mailTo emailAddress}}
(output: <a href="mailto:[email protected]">[email protected]</a>)
mailto link with alternate label
{{mailTo emailAddress username}}
(output: <a href="mailto:[email protected]">foobar</a>)
Modell verwendet:
App.User = DS.Model.extend({
username: DS.attr('string'),
emailAddress: DS.attr('string')
});
Beiden Werte (die E-Mail-Adresse sowie die Option (alternate label) sind an das Modell gebunden und ändern sich, wenn sich das Modell ändert.
ein JSFiddle Erstellt das Ändern Modell zu demonstrieren: http://jsfiddle.net/We6B9/
Ich könnte die unelegante Sache tun und nur eine Eigenschaft namens mailto_contact_email haben, die mailto: mit 'this.get ('contact_email')' concats. Scheint so, als ob der Lenker eine Art unterscheiden müsste und ich finde ihn einfach nicht. –
Wenn Sie die E-Mail-Adresse direkt von einem Modell laden und den älteren Lenker in Ihrer App verwenden, können Sie 'Send email' in Ihrer Ansicht verwenden. Wenn Sie jedoch eine dynamische Bindung/Aktualisierung in der Ansicht benötigen, sehen Sie sich die neuen HTMLBars-Funktionen an, die dies ebenfalls mit der gleichen Syntax unterstützen, die ich angegeben habe. – DelphiLynx