2016-03-02 6 views
4

Я пытаюсь ввести $httpParamSerializer для использования в templateUrl, но у меня возникают некоторые проблемы. Нет хорошей документации и примеров использования $httpParamSerializer.

Пример кода:

angular.module('myApp', ['ngRoute']).config(
    function($routeProvider, $locationProvider, $httpProvider) { 
    $routeProvider 
     .when('/data/dashboard', { 
      templateUrl: function(params) { 
      //NEED TO USE IT HERE 
      } 
     }) 
}) 

вещи, которые не работали, разместив его так:

function($routeProvider, $locationProvider, $httpProvider,$httpParamSerializer) {

Также в Moduler, как это:

angular.module('myApp', ['ngRoute', '$httpParamSerializer']).config(

Любое понимание того, почему это не работает это поможет.

+1

Я создал JS скрипку, чтобы играть с ним вокруг: http://jsfiddle.net/kh9oeq1y/15/ – Dimitry

ответ

3

Поскольку вы находитесь в конфигурации, вам необходимо получить ее от самого провайдера. То есть, впрыснуть поставщика и вызвать $get

angular.module('myApp', ['ngRoute']).config(
    function($routeProvider, $locationProvider, $httpProvider, $httpParamSerializerProvider) { 

    // get the serializer from the provider 
    var paramSerializer = $httpParamSerializerProvider.$get(); 
    console.log(paramSerializer({a:1})); // test it 

    $routeProvider.when('/', { 
     templateUrl: function(params) { 
     // you can use paramSerializer(here 
     } 
    }); 
}); 

Работа версию jsfiddle: http://jsfiddle.net/kh9oeq1y/16/

-1

This forum предлагает проблему с вашей угловой версией. Убедитесь, что вы используете не менее 1.4.0.

+0

I я использую 1.4.8. Уже проверена версия. Вот JS Fidlle, чтобы поиграть с ним, http://jsfiddle.net/kh9oeq1y/15/ – Dimitry

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

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