如何注入 $httpParamSerializer 以在 templateUrl 中使用

How to inject $httpParamSerializer for use in templateUrl

我正在尝试注入 $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 ) {

同样在模块中,像这样:

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

了解为什么这不起作用会有所帮助。

This forum 表明您的 angular 版本有问题。检查您是否至少使用 1.4.0.

由于您在配置中,因此您需要从提供商本身获取它。即注入提供者并调用$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/