2015-12-29 2 views
0

Я был замечен, что этот вопрос по-разному ответил на другие сообщения, но цели казались разными, рядом с некоторыми решениями я все еще не понимаю. Мне нужно показать только один элемент, как только вы нажмете на его заголовок. Например:AngularJS - Как получить один элемент из вложенного массива?

JSON файла:

[ 
    { 
    "section": "Certifications", 
    "courses": [ 
     { 
     "title": "Certificate 1", 
     "code": "SIT10213", 
     "requisite": false, 
     "cost": "110", 
     "duration": "5h" 
     },{ 
     "title": "Certificate 2", 
     "code": "YYX", 
     "requisite": "Course X", 
     "cost": "150", 
     "duration": "172 hours" 
     },{ 
     "title": "Certificate 3", 
     "code": "XXY", 
     "requisite": "Course Y", 
     "cost": "210", 
     "duration": "1 day" 
     } 
    ] 
    },{ 
    "section": "Qualifications", 
    "courses": [ 
     { 
     "title": "Bar Operations", 
     "code": "SXW", 
     "requisite": false, 
     "cost": "120", 
     "duration": "97–107 hours in total" 
     }, 
     { 
     "title": "RSA", 
     "code": "YZX", 
     "requisite": false, 
     "cost": "100", 
     "duration": "97–107 hours in total" 
     } 
    ] 
    } 
] 

В HTML, что я пытаюсь сделать, это:

  1. приложение перечисляет ссылки для каждого из разделов/категорий;
  2. «Показать все» необходимо просто перечислить их все
    (я еще не работал над этим)
  3. Вы щелкаете по разделу, и в нем перечислены доступные для него курсы.
    (До тех пор, пока здесь мне не удалось заставить его работать.)
  4. Пользователь нажимает на название курса и отображается информация об этом конкретном курсе.
    (Вот где вложенные массивы меня обмануть Есть такую ​​вещь, как courseArray.section [parentIndex] .course [$ указательного] .title.?)

Вот версия Plnkr - начала, но никогда не исправлено: http://plnkr.co/edit/JRIyQLuRfVslVjr5fFSY?p=preview

Любой свет на это очень ценится. Best, San

+0

Похоже, у вас есть несколько ненужных ng-repeat. Попробуйте назначить выбранный курс переменной $ scope.variable и использовать эту переменную для привязки к разделу подробных сведений о курсе. – Will

+0

Извините Не уверен, понимаю ли вы, что вы имеете в виду. Я придумал обходное решение, описанное ниже, возможно, это то, что вы говорите, я назначаю код курса переменной, а затем фильтрую ее в ngRepeat - также на этот раз я использую только тот, который вы предложили. – Perroud

ответ

0

Хорошо, не уверен, что это лучший подход, но он делает то, что мне нужно. Я добавил код курса в качестве параметра функции ngClick, когда вы нажимаете ссылку курса. Когда вы выбираете курсы, используя ng-repeat, я использую «filter: courseCode», чтобы отображать только один курс, который соответствует приведенному выше коду. Надеюсь, что это поможет и кому-то другому. Cheers

+0

Где код? – Will

Смежные вопросы