如何注入$httpParamSerializer以在模板URL中使用

How to inject $httpParamSerializer for use in templateUrl

本文关键字:URL httpParamSerializer 何注入 注入      更新时间:2023-09-26

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

任何为什么这不起作用的见解都会有所帮助。

由于您在配置中,因此您需要从提供程序本身获取它。也就是说,注入提供程序并调用$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.4.0。