【问题标题】:Angularjs select2 Ajax bindingAngularjs select2 Ajax 绑定
【发布时间】:2015-02-03 22:52:41
【问题描述】:

我正在使用 AngularJs + Select2。我正在尝试从远程获取数据。下面是我的代码

HTML:

<div class="col-md-4 left">
  <input type="text" style="width:300px" ui-select2="multi" ng-model="multi2Value" multiple="multiple" />
 </div>

JS : [更新]

 $scope.multi = {
            ajax: {
                headers: { 'Content-Type': 'application/json' },
                url: "http://localhost:63591/Lookup?lookup=Lookup&key=acc",
                data: function (term, page) {
                    return {}; 
                },
                results: function (data, page) {             
                    console.log(data);
                    return {results: data.LookupValue};
                }
            }

我的回应是

{ "LookupValue" : [ "AAAA","BBBB","CCC" ] }

但在控制台中我看到了响应。但它没有加载到选择下拉列表中。

我的代码出了什么问题。任何人都可以帮助我吗?谢谢

【问题讨论】:

  • 只是简单地返回 data.lookupvalue 而不是具有 result 属性的对象。 return data.LookupValue;

标签: javascript angularjs twitter-bootstrap select


【解决方案1】:

我认为您必须将您的响应保存在$scope.listLookup 等范围变量中并在您的 ajax 中返回,然后在此步骤之后尝试将其绑定到 HTML 中,例如:

<select ui-select2 ng-model="multi2Value" data-placeholder="Pick a Lookup">
    <option value=""></option>
    <option ng-repeat="lookup in listLookup " value="{{lookup.value}}">{{lookup.text}}</option>
</select> 

如果 listLookup 的项目,并且 valuetext 的项目是一些,则 lookup 是列表中的每个项目查找的虚拟属性...

关注this article,希望你理解。

【讨论】:

    【解决方案2】:

    而不是

    return {results: data};
    

    使用

     return {results: data.LookupValue};
    

    它可能是原始类型数组

    [string,string,string]
    

    或对象数组

    [{},{},{}]
    

    还有:

    data: function (term, page) {
                return {
                    q: term, //search term
                    page: page // page number
                };
            },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2015-06-21
      • 2014-10-21
      • 2014-02-03
      • 2020-03-26
      • 2013-06-12
      • 1970-01-01
      相关资源
      最近更新 更多