2015-07-01 1 views
1

Каков наилучший способ передать параметр в приложение MEAN при сохранении симпатичного URL-адреса? Я НЕ МОЖЕТ использовать для этого хранилище на клиенте. Следующий Экспресс маршрут будет успешно грузиться параметров в угловом приложения, но URL некрасиво ...Пропустить параметр в приложение MEAN с красивым URL?

router.get('/:bid', function(req, res, next) { 
    var bid = req.params.bid || ''; 
    res.render('index', { initData: { bid: bid } }); 
}); 

Параметризованный URL:

http://localhost:4001/ABC123 

становится:

http://localhost:4001/?bid=abc123#/login 

I не прочь использовать строку запроса, но я хочу, чтобы параметры строки запроса немедленно исчезли.

ответ

1

(Справедливо наверняка, с других постов, вы используете UI-маршрутизатор. Я буду считать это здесь.)

Если вы используете UI-маршрутизатор, я бы форматировать URL с значение в качестве параметра:

http://localhost:4001/#/login/abc123 

До тех пор, как ваши государственные счета для параметра ...

(function (module) { 

    'use strict'; 

    var config = function ($stateProvider, $urlRouterProvider) { 

     $urlRouterProvider.otherwise("/login"); 

     $stateProvider 
      .state('login', { 
       url: '/login/:bid', 
       templateUrl: 'partials/login.html', 
       params: { 
        bid: { squash: true, value: null } 
       } 
      }); 
    }; 

    module.config(config); 

})(angular.module('your-app')); 

Вы можете вытащить значение в контроллер с помощью $ stateParams:

(function (module) { 

    'use strict'; 

    var loginController = function ($stateParams) { 

     var vm = this; 

     vm.bid = $stateParams.bid || ''; 

    }; 

    module.controller('Login', loginController); 

})(angular.module('your-app')); 

И делать с ним, что вы:

<div class="container" ng-controller="Login as login"> 
    <form class="form-signin"> 
     <h2 class="form-signin-heading">Please sign in: {{ login.bid }}</h2> 
    </form> 
</div> 

Параметр исчезнет из URL моментом пользователь нажимает на ссылку или переходит в другом месте.

Кроме того, на боковой ноте это также устранит зависимость от Джейда или впрыскивает его через механизм просмотра.

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

  • Нет связанных вопросов^_^