Search code examples
javascriptangularjsngresource

How use JS variable as ngresource parameter name?


I'm trying to filter columns with the following code:

JS:

$scope.filter = {};

$scope.filterColumn = function (propName) {
   $scope.informsystemList = EntityManager.query({entity: "informsystem",propName:$scope.filter[propName]});
}

HTML:

<input type="text" ng-model="filter.name" ng-change="filterColumn('name')">

Resource:

portalApp.factory("EntityManager", function ($resource) {
    return $resource("rest/:treeNodeType/:entity/:id", {treeNodeType:'@treeNodeType',entity: '@entity', id: '@id'},
        {
            update: {
                method: 'PUT'
            }
        });
});

Problem is in propName:$scope.filter[propName] - param value is OK but parameter name is not variable value but "propName". How to fix this issue?


Solution

  • So if you want to use the propName value as a property name you have to do it like this :

    $scope.filterColumn = function (propName) {
       var data = {entity: "informsystem"};
       data[propName] = $scope.filter[propName];
       $scope.informsystemList = EntityManager.query(data);
    }