2012-12-04 3 views
1

Я ищу для библиотек маршрутизации javascript, и я прихожу к Сэмми, поэтому я его изучаю.Как установить базовый url с sammy?

Все примеры, которые я видел до сих пор показывают горячий, чтобы продолжить маршрутизацию на основе из домена в качестве базового URL, как www.mydomain.com/#, а затем все маршруты идет по

, но я делаю некоторые испытания в пределах вложенной директории в моем LOCALHOST директорию, например/Wwwroot/игра/Сэмми/так что моя база URL будет

http://localhost/~rockdeveloper/play/sammy/# 

, а затем все маршруты должны идти дальше, как:

http://localhost/~rockdeveloper/play/sammy/#/products 
http://localhost/~rockdeveloper/play/sammy/#/clients 
http://localhost/~rockdeveloper/play/sammy/#/search 

является есть способ установите этот базовый url, чтобы я мог перейти к config sammy-маршрутам, как это?

get('#/products') 
get('#/clients') 
get('#/search') 

теперь я должен сцепить главную строку маршрута, и я хочу это был бы более умным, чем это ...

baseurl='/~rockdeveloper/play/sammy/#/search'; 
get(baseurl + '#/products'); 

спасибо.

ответ

2

Sammy - это инфраструктура frontend, вам не нужно предоставлять baseurl, так как все вызовы выполняются на стороне клиента на основе URL-адреса, остальная часть пути после знака фунта доступна только для использования sammy.

Ex:

http://localhost/~rockdeveloper/play/sammy/#/products 
http://localhost/~rockdeveloper/play/sammy/#/products/iphone 
http://localhost/~rockdeveloper/play/sammy/#/products/iphone/cases/all 

Ваш базовый путь

http://localhost/~rockdeveloper/play/sammy/ 

Во всех из них. Остальные - это просто сэмми-маршруты (подумайте о них как о параметрах GET)

Также ваши маршруты должны быть определены так, чтобы их можно было легко называть из ваших якорей. Вот часть моих маршрутов файл:


app = $.sammy('body', function() { 
    //define events 
    this.bind('addNew',function(e,data){ 
     //data.name = data.name.split(' ').join('_'); 
     for(x in mapa[data.element]){ 
     if(mapa[data.element][x].name.toLowerCase() == data.name.toLowerCase()){ 
       return alert('There is already an element with the same name'); 
      break; 
     } 
    } 
    ap('Adding: '+data.element+' with the name: '+data.name); 
    mapa[data.element].push({name:data.name}); 
    this.trigger('sections',{action:data.element}); 
    }); 


    // define routes 
    this.get('#/', function() { 
    $('#menuright').html(''); 
    $('.customMenu').remove(); 
    $('#holder').html('').attr({style:''}); 
    }); 

    this.get('#/someroute/:variable', function() { 
     /* 
     ... 
     ... 
     ... 
     */ 
    }); 

    this.before(function(){ 
    if(typeof(app.historial)=='undefined'){ 
     app.historial = []; 
    } 
    app.historial.unshift(this.path.split('#')[1]); 
    if(app.historial.length>2) app.historial.length = 2; 
    do_something(); 
    }); 
}); 

И от ваших взглядов вы можете просто использовать что-то вроде:

<a href="#/someroute/{{name}}"><i class="icon-bookmark"></i> {{name}}</a> 
//le me here using mustache :{