Использование AngularJs $ resource и jquery bind

0

Я новичок в Angualrjs, и я пытаюсь понять этот код... так выглядит служба

var userGroupServices = angular.module('userGroupServices', ['ngResource']);
userGroupServices.factory('UserRoles', ['$resource', function ($resource) {

    var r1 = $resource('/api/UserRoles/:UserRoleId', null, {
        'update': { method: 'PUT' },
        'delete': { method: 'DELETE' }
    });
    r2 = $resource('/api/UserRoles', null, {
        'add': { method: 'POST' },
        'getRoles': { method: 'GET' }
    });
    r3 = $resource('/api/UserRoles/GetRolesByGroupType/:groupTypeName', null, {
        'getRolesByName': {method:'GET'}
    });

    r1.getAll = r2.getRoles.bind(r2);
    r1.add = r2.add.bind(r2);
    r1.getRolesByName = r3.getRolesByName.bind(r3);
    return r1;

}]);

Почему это в конце концов, вы связываете переменные r2 и r3 с переменной r1? как я могу использовать эту фабрику для POST, я пытаюсь опубликовать ее так, но ничего не сделал (в моем контроллере)...

addService.addRole({ roleName: groupTypeName });
Теги:
angularjs-directive
angularjs-service

1 ответ

1
Лучший ответ

Я думаю, что причина, по которой ресурсы 2 и 3 объединяются и возвращаются ресурсом 1, - это отвлечь эти другие ресурсы от тех, кто хочет использовать службу UserRoles. Теперь вам не нужно знать, сколько ресурсов требуется службе для работы.

Что касается сообщений, то.addRole(), похоже, не существует в вашей службе. Попробуйте UserRoles.add({object}).

  • 0
    Да ... я понял, что он пытается объединить переменные r2 и r3 в r1, потому что тогда вы можете использовать его в контроллере как одну функцию, что означает, что вы можете использовать любое из этих имен методов в контроллере, просто назвав имя метода Например, `addService.getRoles ({roleName: groupTypeName})`. Спасибо за помощь...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню