Skip to content

Instantly share code, notes, and snippets.

@GavinJoyce
Created March 22, 2017 17:17
Show Gist options
  • Select an option

  • Save GavinJoyce/d1d38338d51ecda91087bf9cfe4536b5 to your computer and use it in GitHub Desktop.

Select an option

Save GavinJoyce/d1d38338d51ecda91087bf9cfe4536b5 to your computer and use it in GitHub Desktop.
Good Bad Helpers
import Ember from 'ember';
export default Ember.Controller.extend({
});
import Em from 'ember';
export function badMailTo(params) {
let email = Em.Handlebars.Utils.escapeExpression(params[0]);
let name = Em.Handlebars.Utils.escapeExpression(params[1]);
return Em.String.htmlSafe(
`<a target="_blank" href="mailto:${email}">${name}</a>`
);
}
export default Ember.Helper.helper(badMailTo);
import Em from 'ember';
export function goodMailTo(params) {
let email = params[0];
let name = params[1];
let className = params[2];
let a = document.createElement('a');
a.target = '_blank';
a.href = `mailto:${email}`;
if(className !== undefined) {
a.className = className;
}
let text = document.createTextNode(name);
a.appendChild(text);
return a;
}
export default Ember.Helper.helper(goodMailTo);
<hr />
uses html safe:
{{bad-mail-to 'Alex' 'alex@gmail.com'}}
<hr />
no html safe:
{{good-mail-to 'Ben' 'ben@gmail.com'}}
{
"version": "0.12.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment