I tried to use Ember.js Handlebars helper {{action}} in a Windows 8 Metro (Windows Store) application. The data marker attribute appeared, but the function was never called.
I managed to find the root cause: Ember.js uses jQuery.ready() for initialization.
Solution
Change
waitForDOMContentLoaded: function() {
this.deferReadiness();
var self = this;
this.$().ready(function() {
self.advanceReadiness();
});
},
to
waitForDOMContentLoaded: function() {
this.deferReadiness();
var self = this;
WinJS.Application.addEventListener("ready", function () {
self.advanceReadiness();
});
},
and comment out 2 lines as shown below: advanceReadiness: function() {
this._readinessDeferrals--;
//if (this._readinessDeferrals === 0) {
Ember.run.once(this, this.didBecomeReady);
//}
},
Now you will use the Metro infrastructure for events.
No comments:
Post a Comment