2014-12-05 2 views
4

Я использую AngularJs + Select2. Я пытаюсь получить данные с удаленного. Ниже мой кодAngularjs select2 Ajax binding

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" ] } 

Но в консоли я вижу ответ. Но он не загружается в раскрывающийся список select.

Что пошло не так в моем коде. Может ли кто-нибудь мне помочь? Благодаря

+0

просто просто возвращает data.lookupvalue, а не объект с свойством result. 'return data.LookupValue;' – harishr

ответ

0

вместо

return {results: data}; 

использование

return {results: data.LookupValue}; 

Это может быть либо массив примитивных типов

[string,string,string] 

или массив объектов

[{},{},{}] 

, а также:

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

Я вижу вывод в Console.log, но не в раскрывающемся списке. – Backtrack

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 и значение и текста - некоторые фиктивные свойства поиска ...

Посмотрите на this article, надейтесь, что вы поймете эту идею.