2011-01-05 6 views
0

Я подумываю портировать свое текущее приложение, чтобы использовать веб-службы JavascriptMVC + RESTfull. Тем не менее, я не уверен, могу ли я создавать URL-адреса для закладок с помощью JavascriptMVC.Поддерживает ли JavascriptMVC закладки-закладки?

Например: веб-приложение является приложением для проведения курсов, и будет иметь URL-адрес, как

/курсы/RDBMS/лекция/1

Можно ли создать такие URL-адрес с JavascriptMVC?

ответ

2

Вы можете использовать jQuery.address (http://www.asual.com/jquery/address/), чтобы управлять своими URL-адресами.

jQuery.address позволяет устанавливать URL-адреса для сканирования, такие как «http://example.com/#!/user/5», и слушать изменения адресов и действовать соответственно.

В моем собственном коде я настроил маршрутизатор на основе адресов из файла конфигурации steal следующим образом.

steal.plugins(
      'jquery/controller', 
      'jquery/controller/subscribe', 
      'jquery/view/ejs', 
      'jquery/controller/view', 
      'jquery/model', 
      'jquery/dom/fixture', 
      'jquery/dom/form_params', 
      'steal/less')     
    .css('css/vendor/reset-fonts-grids') 
    .resources('vendor/jquery.address-1.3.1.min.js') 
    .models('user') 
    .controllers('user') 
    .views() 
    .then(function() { 
     steal.less('css/style'); 

     // Set up a router 
     $.address.baseURL('/basePath'); 

     // $.address.crawlable(true); 
     $.address.change(function(event) { 
      var path = event.path; 
      switch(true) { 
      // Matches http://example.com/#!/ or http://example.com/ 
      case /^\/$/.test(path): 
       $('#page').empty(); 
       break; 
      // Matches http://example.com/#!/user/42/profile 
      case /^\/user\/[0-9]+\/profile/.test(path): 
       var userId = path.split("/")[2]; 
       // Instantiate and load a controller 
       new User.Controllers.User($('body'),userId); 
       break; 
      case /^\/search/.test(path): 
       $.log('search'); 
       break; 
      default: 
       $.log(event.path); 
      } 
     }); 
    }); 

Вы можете затем вызвать новую страницу из HTML-земля через

<a href="/" onclick="$.address.value('/'); return false;">root url</a> 

Или от JS земли через

$.address.value('/user/10/profile'); 
Смежные вопросы