2015-04-22 5 views
2

Я сейчас работаю над доказательством концепции плункера. Я пытаюсь заполнить раскрывающийся список данными, которые я вытаскиваю из $http.get(), и на основе выбора пользователя. Я хочу сделать еще один вызов $http.get() еще одному априоту отдыха и получить данные, которые относятся к нему и использовать его в списке ng-repeat. В настоящее время у меня есть первая часть работы, но я не знаю, как сделать второй звонок. Я использую this поддельный rest api для первого набора данных и заполняя выпадающий список id, которого есть 100. Во-вторых, я хочу, чтобы пользователь выбирал 1-100 из раскрывающегося списка и отображал соответствующий набор электронные письма от this поддельный отдых api на основе их postId, которых есть 500.

Надеюсь, это имеет смысл. Here - это плункер, в котором я работаю в 1/2 раза.

EDIT ПРОЯСНИТЬ:

Параметры в <select> должны быть все id «s от here. Есть 100 уникальных id.

В <li> «ы о <ul> должны быть соответствующие email» ы, которые имеют один и тот же postId как выше <select> - найдено here.

Так что, если я выбираю 1 из выпадающего списка, я хочу, чтобы письма от них, чтобы составить список:

{ 
    "postId": 1, 
    "id": 1, 
    "name": "id labore ex et quam laborum", 
    "email": "[email protected]", 
    "body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\ntempora quo necessitatibus\ndolor quam autem quasi\nreiciendis et nam sapiente accusantium" 
    }, 
    { 
    "postId": 1, 
    "id": 2, 
    "name": "quo vero reiciendis velit similique earum", 
    "email": "[email protected]", 
    "body": "est natus enim nihil est dolore omnis voluptatem numquam\net omnis occaecati quod ullam at\nvoluptatem error expedita pariatur\nnihil sint nostrum voluptatem reiciendis et" 
    }, 
    { 
    "postId": 1, 
    "id": 3, 
    "name": "odio adipisci rerum aut animi", 
    "email": "[email protected]", 
    "body": "quia molestiae reprehenderit quasi aspernatur\naut expedita occaecati aliquam eveniet laudantium\nomnis quibusdam delectus saepe quia accusamus maiores nam est\ncum et ducimus et vero voluptates excepturi deleniti ratione" 
    }, 
    { 
    "postId": 1, 
    "id": 4, 
    "name": "alias odio sit", 
    "email": "[email protected]", 
    "body": "non et atque\noccaecati deserunt quas accusantium unde odit nobis qui voluptatem\nquia voluptas consequuntur itaque dolor\net qui rerum deleniti ut occaecati" 
    }, 
    { 
    "postId": 1, 
    "id": 5, 
    "name": "vero eaque aliquid doloribus et culpa", 
    "email": "[email protected]", 
    "body": "harum non quasi et ratione\ntempore iure ex voluptates in ratione\nharum architecto fugit inventore cupiditate\nvoluptates magni quo et" 
    }, 
    { 

Так что я хочу, чтобы мой список, чтобы посмотреть, как это, когда выбран 1:

Надежда, что помогает очистить его вверх.

+1

Похоже, что у вас все в порядке. Просто 'search()' не определен в функции 'onChange()'. Прямо там вы можете вызвать '$ http.get()' и заполнить поле данных, применив информацию к '$ scope.records' – deitch

+0

Извините, я не уверен на 100%, что вы пытаетесь сказать. Не могли бы вы немного разобраться? – erp

+0

Хм, может быть, я не понял его полностью. Прямо сейчас, он получает все сообщения и заполняет их в 'ul' * и * в раскрывающемся списке' select'. Затем, когда вы выбираете один из них, он вызывает неопределенную функцию 'search()'. Что вы на самом деле хотите сделать? – deitch

ответ

1

Существует куча вещей происходит здесь:

  • Вы хотите разделить на-изменения функции для фильтрации от выбора
  • Вы хотите использовать в нг-модели для выбора в функции обратного вызова
  • вы хотите загрузить записи о ul только после выбора
  • в идеале, фильтрация по postId должна быть на стороне сервера, так что вы получите только необходимые вам данные; конечно, без сервера, просто простенький файл GET, мало что можно сделать по этому поводу, но я бы добавил его в $http.get(), а не в html, так как именно там вы делаете get (на самом деле, я бы извлек его услуга, но это совсем другой вопрос)

Я обновил plunkr, чтобы вы могли выбрать работу.

http://plnkr.co/edit/4VEFBCIybk4mEO0mxGa2?p=preview

На самом деле, вам даже не нужен filter() обратный вызов, так как вы используете его правильно в ng-repeat в ul, так что я устранил его. Используйте обновленный plunkr вместо этого

+0

Святой моли. Ты легенда. Я все еще хотел использовать поиск, фильтр и изменения, но то, что вы мне дали, - это потрясающее начало. Хорошо, сэр. – erp

+0

Вы собираетесь заставить меня покраснеть! Нет, просто боролся по тем же вопросам и платил им вперед. Используйте его хорошо. – deitch