Home Dashboard Directory Help
Search

WinJS -- default.js not refactorable to true AMD style: onactivated event does not fire by PaulChristopher


Status: 

Resolved
 as External Help for as External


1
0
Sign in
to vote
Type: Bug
ID: 773996
Opened: 12/11/2012 12:10:04 AM
Access Restriction: Public
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description

It is often mentioned in official Microsoft talks or books, that WinJS can be used together with an AMD loader. However if you refactor default.js to true AMD style, it does not work (see test case below): Of course the loader defers the application startup and app.start is called when all modules have been loaded. But this seems to be to late for WinJS: The only event that gets fired, is a "loaded event". The activated event is completely lost.
Details
Sign in to post a comment.
Posted by Microsoft on 1/18/2013 at 9:45 AM
I was able to repro the issue. It looks like the initialization code run by the dijit library yields and subsequently we miss the app.activated event and don’t re-raise it. I’ve opened a bug for WinJS to examine if we can fix the issue in the next version.

In the meantime, there’s a reasonable workaround here (http://social.msdn.microsoft.com/Forums/en-US/winappswithhtml5/thread/2790d838-ccd9-42b1-ba08-d72d4f10858e) that involves moving your require declaration into the ready handler. While it doesn’t match the common AMD pattern, I hope this workaround will work for you for now.

Much thanks for reporting this; we want to ensure WinJS works well with other libraries, including Dojo.
Posted by PaulChristopher on 1/16/2013 at 12:21 AM
phuff, thank you for your feedback. Alas, the problem still exists for me. As you suggested: I have mailed you a zipped project file. Hopefully you can reproduce the issue. I am using Microsoft Visual Studio Express 2012 for Win8 Version 11.0.51106.01 Update 1 (Mircosoft .Net Framework Version 4.5.50709), Dojo 1.8.1.
Posted by Microsoft on 1/11/2013 at 2:13 PM
Thank you for reporting this issue, PaulChristopher. We tried to reproduce this issue with the code you provided, but we see all the events raised, including activated. If you are still seeing this issue, please mail a zipped project file that reproduces the bug to phuff -at- Microsoft -dot- com and we’ll investigate your repro directly.
Posted by PaulChristopher on 12/13/2012 at 2:36 AM
Closing this ticket without any comment and declaring it as "not our problem" is not very helpful. Apparently the onactivated event is not correctly queued if the app's startup is delayed by a third party library, in this case: an AMD loader.

This Microsoft book mentions that you can use Dojo Toolkit and AMD loaders: http://blogs.msdn.com/b/microsoft_press/archive/2012/08/20/free-ebook-programming-windows-8-apps-with-html-css-and-javascript-second-preview.aspx.

Has this been thoroughly tested?

Please give some feedback on how this issue can be resolved and what needs to be changed in the third party library.
Posted by Microsoft on 12/11/2012 at 1:53 AM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.
Posted by Microsoft on 12/11/2012 at 12:50 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.
File Name Submitted By Submitted On File Size  
TestAMD.zip 1/16/2013 5.6 MB