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