首页 > 解决方案 > 如何将数据发送到工厂服务并设置为参数值?

问题描述

我希望能够发送控制器 1(在 jquery 函数上)上的 id 值并将该数据发送到工厂服务,该服务将用作 $http 中的参数值(editData)。因此,在接收到 id 值作为服务的参数后,我计划将数据从 $http 请求发送到控制器 2,并将其显示在我的 html 输入字段中。如何以正确的方式将 id 值从 jquery 代码内部发送到工厂服务?我非常感谢您的帮助。

工厂服务:

app.factory('profilingFactory', function($http, $q) {
    //var dataHolder = {last_name: "dsadas"};
    
    return {
        getData: function() {
            promise = $http.get('/getEditProfilesData/', {params: {q: editData}}).then(function(response) {
                var dataHolder = response.data;
            });
            
            return promise;
        }
    };
});

控制器 1:

app.controller('profilingController', function($scope, $http, $window, profilingFactory) {
    
    $(document).ready(function() {
        $scope.table = $('#table_profile').DataTable ({
            "ajax": {
                "url": "/getProfilesData",
            },
            "columns": [
                {"data": "applicant_id"},
                {"data": "application_type"},
                {"data": "last_name"},
                {"data": "middle_name"},
                {"data": "first_name"},
                {"data": "birth_date"},
                {"data": "address"},
                {"data": "sex"},
                {"data": "date_applied"},
                {
                    "data": "applicant_id",
                    "mRender":  function (data, type, full) {
                        var editLink = '<button id="editFunction" class="btn btn-primary" type="button" data-id="' + data + '">Edit</button>';
                        //var editLink = '<a id="editFunc" class="editFunction" href="/editProfiles?applicant_id=' + data + '">Edit</a>';
                        var deleteLink = '<button class="btn btn-primary" id="deleteButtonFunc" type="button" data-id="'+ data +'">Delete</button>';
                        return (editLink + " " + "  |  " + " " + deleteLink);
                    }
                }
            ]
        });
        
        
        $('body').on('click', '#editFunction', function(e) {
            
            $scope.clickedEdit = $(this);
            $scope.id = $scope.clickedEdit.attr("data-id");
            $scope.url = "/editProfiles?applicant_id=" + $scope.id;
            $scope.editData = {
                    editId: $scope.id
            }
            $(location).attr('href', $scope.url);
            
            profilingFactory.getData($scope.editData);
        });
        
    });
    
});

控制器 2:

app.controller('editProfliesController', function($scope, $http, $window, profilingFactory) {
    $scope.setSample = profilingFactory;
    console.log($scope.setSample);
});

标签: javascriptjqueryangularjs

解决方案


推荐阅读