如何在select2 ajax angularjs中传递参数?

时间:2013-05-02 09:24:03

标签: angularjs angular-ui

我的Html代码为<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代码

$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
                            };
                        }
                    }
                };

如何在url中获取并传递transtypeid。 提前致谢

2 个答案:

答案 0 :(得分:1)

我使用一个为我构建并返回选项对象的函数:

<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;
}

答案 1 :(得分:0)

在select2 ajax调用中,只需使用选择器attr:

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