0

Im обучение, чтобы построить окна +8,1 навигации приложения в Visual Studio Express 2013.
Winjs Navigate от PageControl оленьей кожи огня готового события

Ive создал кнопку внутри home.html и переплетены события нажатия кнопки мыши, чтобы выполнить навигацию к pageControl элемент htmlcontrols (навигация работает отлично). Затем ive создала новую страницу с именем otherpage, и я добавил еще одну кнопку, но на этот раз внутри htmlcontrols. Я привязываю другое событие click к этой кнопке, чтобы перейти от htmlcontrols к другой странице.

Навигационный поток должен быть:
дома (нажмите) -> htmlcontrols (клик) -> otherpage

Вторая навигация не работает, Ive пытался поставить отладчик внутри готового события на otherpage .js, но он не срабатывает.
Im полностью потерян!

htmlcontrols.html:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>htmlcontrols</title> 

    <link href="htmlcontrols.css" rel="stylesheet" /> 
    <script src="htmlcontrols.js"></script> 
</head> 
<body> 
    <div class="htmlcontrols fragment"> 
     <header class="page-header" aria-label="Header content" role="banner"> 
      <button class="back-button" data-win-control="WinJS.UI.BackButton"></button> 
      <h1 class="titlearea win-type-ellipsis"> 
       <span class="pagetitle">Welcome to htmlcontrols</span> 
      </h1> 
     </header> 
     <section class="page-section" aria-label="Main content" role="main"> 

      <button id="newButton">Link to another page!</button> 
     </section> 
    </div> 
</body> 
</html> 

htmlcontrols.js:

// For an introduction to the Page Control template, see the following documentation: 
// http://go.microsoft.com/fwlink/?LinkId=232511 
(function() { 
    "use strict"; 

    var nav = WinJS.Navigation; 

    WinJS.UI.Pages.define("/pages/htmlcontrols.html", { 
     // This function is called whenever a user navigates to this page. It 
     // populates the page elements with the app's data. 
     ready: function (element, options) { 
      // NEVER REACHES THIS POINT 
      debugger; 
      newButton.addEventListener("click", function (e) { 

       nav.navigate("/pages/otherpage/otherpage.html"); 
      }, false); 
     }, 

     unload: function() { 
      // TODO: Respond to navigations away from this page. 

     }, 

     updateLayout: function (element) { 
      /// <param name="element" domElement="true" /> 

      // TODO: Respond to changes in layout. 
     } 
    }); 
})(); 

ответ

0

Нашел! В htmlcontrols.js, uri в WinJS.UI.Pages.define() был неправильным.

0

Я рад, что вы нашли ответ. Чтобы быть более конкретным, расположение файла .html страницы в вашем проекте и относительный URI в WinJS.UI.Pages.define должно соответствовать, чтобы правильно связать код внутри элемента управления страницы и HTML-файла. В противном случае происходит то, что HTML загружается просто отлично, но когда WinJS ищет определенный элемент управления страницей, он не находит совпадения, и поэтому он не будет запускать ни одно из этих событий.

Обратите внимание, что если вы указали неправильный URI Navigator.navigate и он не может найти файл, который выдает исключение. Но неправильный пользовательский интерфейс в файле Pages.define не будет бросать, потому что WinJS предполагает, что страница может работать нормально без обработчиков событий.