Вам нужно использовать trackBy
, чтобы сообщить angular для отслеживания индекса, поэтому для вашей итерации просто добавьте:
*ngFor="let irule of campaign.includeRules; index as i; trackBy: myTrackByFn"
и в компонент:
myTrackByFn(index) {
return index;
}
Мы раньше пропускали его также. И путем пропуска его мы отсутствовали много. Чтобы понять функцию правильно и не только сделать правильно вещь, но и ДЕЛАЙ КАК НАДО, это является ключевым для знания, ПОЧЕМУ функция, и для этого следующий ключ ТО, КТО (роль) В терминах DDD, заинтересованной стороне. Заинтересованные стороны могут отличаться, все, кто заботится. От программистов и администраторов дб ко всем типам пользователей.
Так, сначала поймите, кто заинтересованная сторона, затем Вы знаете 50% того, ПОЧЕМУ он заботится, затем преимущество, и затем это уже, почти очевидно, ЧТО реализовать.
Попробуйте к не, только пишут "как пользователь". Указать. "как управляющий магазином", или даже "как вывод сдвигом, ответственным за закрытие дня", мне нужно.... так, чтобы....
Возможно, можно реализовать что-то другое, что принесет той же заинтересованной стороне еще лучшую пользу!!!
Попробуйте, Для Достижения [Бизнес-возможность] Как [Пользователь] мне нужно [Функция].
Цель состоит в том, чтобы сфокусироваться на значении, которое поставляет функция. Это помогает Вам думать в вертикальных частях, который уменьшает чистые "технические задачи", которые не видимы. Это не легкий переход, но когда Вы начинаете думать вертикально, что Вы запускаете действительно способность уменьшить отходы в Вашем процессе.
Иначе к размышлению о приемочных испытаниях, которые Ваш клиент мог записать, чтобы гарантировать, что функция будет работать. Это - короткий переход к затем использованию чего-то как FitNesse к автоматизированному те тесты.
Нет, это на самом деле не очевидно - существует много причин хотеть видеть список, много вещей, Вы могли бы хотеть с ним - сканирует его для некоторой информации, получает обзор, печатает его, копия и вставляет его в документ слова и т.д. И то, что точно это, даст Вам ценные подсказки в разумных деталях реализации - форматирование списка, точного содержания; или даже подсказка, что другой функцией могла бы быть лучшая идея удовлетворить ту потребность. Не удивляйтесь узнать, что причина на самом деле "так, чтобы я мог считать количество записей"...
Конечно, это не могло бы на самом деле относиться к Вам. Моя реальная точка на самом деле - то, что существуют причины, что люди придумали этот шаблон - и существуют также причины, что много опытных людей на самом деле не использует его. И когда Вы плохо знакомы с практикой, Вы не находитесь в хорошем положении для оценки всех за и против следования практике, таким образом, я настоятельно рекомендовал бы просто попытаться следовать за ним тесно в течение некоторого времени. Вы могли бы быть удивлены полноценностью его - или нет, в этом случае Вы все еще изучили что-то и можете отбросить его с ясным кратким... :)
Я думаю, что необходимо действительно попытаться определить причину, даже если это может казаться очевидным. Если Вы не можете придумать причину затем почему сборка функция во-первых? Также причина может указать на другие дефициты в дизайне, который мог инициировать улучшения других областей.
Я часто категоризирую свои истории пользователя/персоны, что это, прежде всего, касается, таким образом я не помещаю идентификационные данные пользователя в заголовок истории. Мои истории также больше, чем некоторые гибкие методологии предлагают. Обычно, я запускаю с заголовка. Я использую его для планирования целей. После того как я рядом с фактическим работанием над той историей, я конкретизирую его с некоторыми деталями - основная идея, ограничения, предположения, связали истории - так, чтобы я получил больше информации, которую я знаю об этом. Я также сохраняю свои истории в Wiki, не на открытках. Я понимаю компромисс - т.е. я могу провести слишком много времени в деталях, прежде чем мне будут нужны они, но я могу получить и совместно использовать его с, обычно, удаленные клиенты легко.
Нижняя строка для меня является настолько Гибкой, философия, а не спецификация. Существуют конкретные реализации, которые могут (сильно) предложить, чтобы Вы сделали вещи определенный путь и могли быть необоротными на некоторых объектах. Например, трудно сказать выполнение XP, если Вы не соединяете программу. В целом, тем не менее, я сказал бы, что большая часть agilists скажет, что необходимо сделать те вещи, которые работают на Вас в способе, которым они работают на Вас - пока они согласовываются с общими принципами, можно все еще назвать себя гибкими. Общие принципы включали бы вещи как ранний выпуск / выпуск часто, поблочное тестирование, короткие повторения, подтвердили бы, что изменение произойдет, задержка детализировала планирование, пока Вы не готовы реализовать...
Нижняя строка для меня: если истории работают на Вас без пользователя и объяснения - пока Вы понимаете, кто пользователь и почему они хотят что-то - делают это однако, Вы хотите. Просто не требуйте полной спецификации, прежде чем Вы начнете реализовывать.
Пользовательские Истории являются другим способом сказать, что необходимо взять интервью пользователей для обнаружения то, что они хотят и какие проблемы они пытаются решить. То, что основа наличия этого в гибкой разработке. Если форма не работает на Ваш, затем делают шаг назад и пробуют другой подход, который чувствует себя более естественным для Вас или лучше подходящий для Ваших возможностей как устройство записи.
Короче говоря не чувствуйте, что необходимо быть в прямом конверте. Важная вещь состоит в том, что Вы следуете за духом методологии.
В этом конкретном случае Вы хотите получить список того, какие проблемы пользователь имеет, почему они - проблемы, и что они думают, поможет им.