user007
user007

Reputation: 643

How to pass parameter in select2 ajax angularjs?

My Html code is <div class="control-group" ng-repeat="ty in transType"> <label class="control-label">{{ty.description}}</label> <div class="controls"> <input type="hidden" ui-select2="transTypeConfig" class="input-xlarge" transTypeId="{{ty.id}}" /> </div> </div>

Javascript code is

$scope.transTypeConfig = {
                    ajax : {
                        url : _context + '/v2/admin/transitionValue/1',
                        data : function(term, page) {
                            console.log('this',$(this));
                            return {
                                q : term
                            };
                        },
                        results : function(data, page) {
                            return {
                                results : data.transValues
                            };
                        }
                    }
                };

how to get and pass transtypeid in url. Thanks in advance

Upvotes: 1

Views: 1712

Answers (2)

Kresimir Pendic
Kresimir Pendic

Reputation: 3614

In select2 ajax call just use selector attr like this:

ajax: {
    url: "/my/custom/url/" + $(this).attr('transTypeId'),
    dataType: 'json',
    quietMillis: 750, ...
},

Upvotes: 0

ProLoser
ProLoser

Reputation: 4616

I use a function that builds and returns the options object for me:

<li ng-repeat=item in items>
  <input ui-select2=itemConfig(item)>
</li>
...
$scope.itemConfig = function(item) {
  var options = {
    ajax: {
      url: '/some/item/url/',
      data: ...,
      results: ...,
    }
  };
  options.ajax.url += item.id;

  return options;
}

Upvotes: 1

Related Questions