Передача объекта param из метода получения $resource в службы отдыха

У меня есть запрос относительно передачи объектов param в метод $resource get.

в серверном спокойном приложении я не получаю переданные значения routeparam. вот мой пример кода

при нажатии кнопки поиска на странице html она перемещается на контроллер, как указано в myapp.js

myapp.js var app = angular.module('myApp', ['MyServices']);

app.config([ '$ routeProvider', функция ($ routeProvider) {

$routeProvider  
.when('/employeesearch/:empID/:deptID', {
    templateUrl : 'partials/result.html',
    controller : SearchController
})
.otherwise({
    redirectTo : '/defaultsearch'
});} ]);

при выполнении console.log в файле controller.js значения routeparams отображаются правильно

SearchController.js

функция SearchController($scope, $routeParams, EmployeeSearch) $scope.mydata = EmployeeSearch.getSearchResult($routeParams.empID, $routeParams.deptID);

}

myservices.js

angular.module('MyServices', ['ngResource']).

factory('EmployeeSearch', function($resource){
return $resource('rest/employees/:eID/:dID', {}, {
query: {method:'GET', params:{}, isArray:false},
getSearchResult:{method:'GET', params:{eID:'empID',dID:'deptID'}}
});
});

бэкэнд спокойный класс Java

@Path("/employees") открытый класс EmployeeSearchService {

@Path("{eID}/{dID}")

@ПОЛУЧИТЬ

@Produces(MediaType.APPLICATION_JSON)

public Метод поиска сотрудников(@PathParam("eID") String empId, @PathParam("dID") String deptId) {

     System.out.println("eid:"+empId);
     System.out.println("did:"+deptId);
        return new Employee(); }

при переходе по спокойному URL-адресу :http:localhost:9080/MyProject/rest/employees/e12/d12
- значение eid равно «e12», а сделало «d12»

но при попадании через угловой он отображает значение eid как «empID» и сделал как «deptID»,

он отображает значение, как я уже упоминал в файле myservices.js

Не могли бы вы помочь мне в этом? что я неправильно даю?

Справочный сайт: https://github.com/teunh/jfall2012/blob/master/demo/web/index.html


person user2495903    schedule 02.07.2013    source источник
comment
Вы передаете строковые значения 'empID' и 'deptID' в этой строке getSearchResult:{method:'GET', params:{eID:'empID',dID:'deptID'}}.   -  person Benny Ng    schedule 02.07.2013
comment
но empID и deptID — это имя параметра маршрута в app.js, поэтому я подумал, что он должен брать значения из URL-адреса. извините, я только начал изучать angular js. тогда как мне передать значение в службы отдыха?   -  person user2495903    schedule 02.07.2013
comment
параметры предназначены для значений по умолчанию, вы можете передать значения в своем вызове getSearchResult вместо EmployeeSearch.getSearchResult({eID: $routeParams.empID, dID: $routeParams.deptID});   -  person Benny Ng    schedule 02.07.2013
comment
@Benny, ты должен опубликовать свой комментарий в качестве ответа и набрать очки. Я почти уверен, что именно этого он и добивался.   -  person Brian Lewis    schedule 02.07.2013


Ответы (1)


params для значений по умолчанию, поэтому они отправляются на сервер, если вы не предоставили их в своем вызове getSearchResult (empID и deptID)

factory('EmployeeSearch', function($resource){
    return $resource('rest/employees/:eID/:dID', {}, {
        query: {method:'GET', params:{}, isArray:false},
        getSearchResult:{method:'GET', params:{eID:'empID',dID:'deptID'}}
    });
});

Чтобы передать значения, которые вы зафиксировали в $routeParams, вы можете передать значения в объекте при вызове getSearchResult в вашем контроллере следующим образом:

function SearchController($scope, $routeParams, EmployeeSearch) {
    $scope.mydata = EmployeeSearch.getSearchResult({
        eID: $routeParams.empID,
        dID: $routeParams.deptID
    });
}

Обратите внимание, что ключ объекта должен соответствовать имени вашего параметра пути к ресурсу (:eID и :dID).

person Benny Ng    schedule 02.07.2013
comment
теперь я понял смысл параметров. это работает. Извините, я не знаю, как давать баллы, и я принял ваш ответ. Спасибо, это точный ответ, который я искал. - person user2495903; 02.07.2013
comment
@user2495903 user2495903 Нет проблем, рад, что помогло! - person Benny Ng; 02.07.2013