Skip to content

Instantly share code, notes, and snippets.

@KarthikaRamachandran
Created May 19, 2017 12:56
Show Gist options
  • Select an option

  • Save KarthikaRamachandran/50780a2074f34a619bdf92af7690ae68 to your computer and use it in GitHub Desktop.

Select an option

Save KarthikaRamachandran/50780a2074f34a619bdf92af7690ae68 to your computer and use it in GitHub Desktop.
Function Passing inside attribute Objects
import Ember from 'ember';
export default Ember.Component.extend({
tagName: "button",
attributeBindings: ["data-properties"],
onClickHandler: function(){
console.log("Component's Handler");
},
actions: {
onClickHandler: function(){
console.log("Component's Action Handler");
}
},
didInsertElement: function(){
var base = this;
Ember.run.scheduleOnce("afterRender", function(){
var func = JSON.parse($(base.element).attr("data-properties")),
convertedHandler = new Function(func.action.slice(9).replace("}}",""));
// console.log(convertedHandler());
});
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
controller: this,
onClickHandler: function(){
alert("on click handler");
}
});
<h1>Function Passing</h1>
<br>
<br>
{{#z-button data-properties='{"action":"{{action onClickHandler}}"}' instance=controller}} Share {{/z-button}}
{{outlet}}
<br>
<br>
{
"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