Angular中的Url中的参数严重转义

时间:2014-08-23 21:10:52

标签: angularjs

我一直坚持这个问题,我整个下午都面临这个问题,直到现在还无法解决。 我想用angular对我的后端进行REST调用,但URL中的给定参数被严重转义。 ... / backend / artikel / getSingleResultById / ?0 = 1& 1 = 0& 2 = 0& 3 = 3 < - 这是我正在谈论的部分。我不明白为什么它如此严重逃脱。它应该只是,在这种情况下,1003。

var REST_URL_ALLE_ARTIKEL = '.../backend/artikel/getAllByClass';
var REST_URL_EIN_ARTIKEL = '.../backend/artikel/getSingleResultById';

var artikelService = angular.module('artikelService', ['ngResource']);

artikelService.factory('ArtikelService', function ($resource) {

    return $resource(REST_URL_ALLE_ARTIKEL, {}, {
        getAlleArtikel: {method: 'GET', url: REST_URL_ALLE_ARTIKEL, isArray: true},
        getGesuchtenArtikel: {method: 'GET', url: REST_URL_EIN_ARTIKEL + '\\/:artnr', params: {artnr: '@artnr'}}
    });

});

这是我定义方法的服务。谁能告诉我如何以正确的方式传递参数?

angular.module('frontend')
    .controller('ArtikelDetailCtrl', function ($scope, $routeParams, ArtikelService) {
        $scope.testArtnr= $routeParams.artnr;

        $scope.gesuchterArtikel = ArtikelService.getGesuchtenArtikel($routeParams.artnr);


    });

这是我的控制器,我从服务中调用该方法。 当我打印出testArtnr时,我得到1003,就像我需要的那样。

 .when('/artikel/:artnr', {
                templateUrl: 'views/artikelDetails.html',
                controller: 'ArtikelDetailCtrl'
            })

这是app.js中的一部分。

请提前获取您的时间和帮助。

1 个答案:

答案 0 :(得分:1)

ArtikelService.getGesuchtenArtikel()需要传递一个artnr属性的对象。

$scope.gesuchterArtikel = ArtikelService.getGesuchtenArtikel({
    artnr: $routeParams.artnr
});

看起来它正在治疗" 1003"作为对象,每个字符作为属性,并将每个字符作为查询字符串附加到调用。