2013-11-23 6 views
0

Я пытаюсь использовать director.js для маршрутизации на моем одностраничном приложении. Проблема заключается в том, когда вы переходите на страницу, введя ее в адресную строку, приложение не выполняет функцию, на которую указывает хеш в таблице маршрутизации.Выполните функцию, основанную на хеше с директором.js

Here is the example on github - Если я обновляю страницу с помощью хэша или напрямую на страницу с хешем, ничего не отображается в консоли. Но если я нажму на один из них, будет показан вывод на консоль. Как я могу изменить этот код, чтобы, если пользователь напрямую переходит к ссылке, таблица маршрутизации проверяет хэш и выполняет ее соответствующую функцию из таблицы маршрутизации? Ответьте, пожалуйста, с методологией, которая использует director.js

<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>A Gentle Introduction</title> 
    <script src="https://raw.github.com/flatiron/director/master/build/director.min.js"></script> 
    <script> 

     var author = function() { console.log("author"); }, 
      books = function() { console.log("books"); }, 
      viewBook = function(bookId) { console.log("viewBook: bookId is populated: " + bookId); }; 

     var routes = { 
     '/author': author, 
     '/books': [books, function() { console.log("An inline route handler."); }], 
     '/books/view/:bookId': viewBook 
     }; 

     var router = Router(routes); 
     router.init(); 

    </script> 
    </head> 
    <body> 
    <ul> 
     <li><a href="#/author">#/author</a></li> 
     <li><a href="#/books">#/books</a></li> 
     <li><a href="#/books/view/1">#/books/view/1</a></li> 
    </ul> 
    </body> 
</html> 

ответ

0

Я не использовал директор, но ваш вопрос может быть тот факт, что GitHub служит «сырые» файлы с мим типов «Текст/равнину ». Таким образом, код js Director может не обрабатываться как javascript, в результате чего ваша тестовая страница не будет работать. Попробуйте загрузить свою копию Director и ссылку на локальную версию, а не на GitHub.

+0

Как было предложено @ Matt27, обязательно сохраните демо-страницу html в новом файле и запустите ее из своей файловой системы. Это то, что я сделал сегодня, и все это работало, как ожидалось. Вам не нужно фактически показывать демо-страницу с веб-сервера; локальной файловой системы достаточно. НТН. –

Смежные вопросы