Я не мог придумать отличный способ назвать этот вопрос, но по существу мне интересно, какое лучшее решение для оценки выражений в Ng-Repeat. Например, если у меня есть код, похожий на этот, который отображает мои проекты (при условии, что у меня есть форма с ng-кликом, связанная с функцией для добавления содержимого в массив проектов, с соответствующим массивом этапов для каждого проекта).Угловая функция оценки в Ng-Repeat
<h2>List of Projects!</h2>
<ul>
<li ng-repeat="project in projects">
<p>{{project.name}}</p>
<li ng-repeat="milestone in project.milestones">
<p>{{milestone.name}}</p>
<p>{{milestone.dateAccomplished}}</p>
</li>
</li>
<ul>
Теперь вот где моя проблема. Поскольку каждая веха имеет связанную с этим дату DateAccomplicated, я хочу создать еще один список, который хронологически отображает ВСЕ вехи для всех проектов с их ассоциированным проектом и датой. Моя мысль заключалась в том, чтобы пройти все проекты, получить все их вехи и использовать угловой фильтр по датеAccomplished (что, я думаю, будет работать), но где я могу использовать ng-repeat
в этом сценарии?
По существу, я знаю, как решить эту проблему на бумаге, но я не знаю, как ее решить Угловой путь. Я не могу понять, как можно обойти мои проекты (используя ng-repeat
) без создания дополнительного HTML, с которым я не хочу иметь дело. Я передумал? Должен ли я вызвать функцию в пределах нг-повтора параметров, что делает некоторую работу для меня, например,
<li ng-repeat="milestone in getAllMilestones()">
Спасибо за вашу помощь.
Edit: JSON объект для проекта выглядит следующим образом:
project = {
name: "some string",
milestones: [{
title: "some string",
date: Date.now()
]}
}
Edit 2: JS-Fiddle: http://jsfiddle.net/HB7LU/1672/
ПРИМЕЧАНИЕ: скрипка работает, как я хочу его, благодаря комментарию ImCg в ; однако ответ Нана, похоже, указывает, что я должен использовать услугу и внедрять эту услугу, поэтому, возможно, я еще не совсем там.
Да, я бы создал новый массив '$ scope.allMilestones' в контроллере и использовал это в простом ngRepeat – imcg
Итак, вы говорите, что знаете, как это сделать, но хотели бы найти альтернативный метод, чтобы избегать «избыточного» HTML? – jessegavin
Да, по сути, я мог бы просто создать метод в контроллере для решения всех моих проблем, но я чувствовал, что это не так, как это сделал бы опытный разработчик Angular. То, что предложили imcg, было больше того, что я искал. – Chris