Как говорит твоя ошибка. Angular поддерживает только перебор массивов.
Я думаю, что вам не хватает | async
для преобразования вашей наблюдаемой обратно в массив.
<app-editform [toDo$]="todo" *ngFor="let todo of cs.$todos | async"></app-editform>
В Regex. Версия соответствия Вы ищете вход в шаблоне. Попытайтесь подкачать параметры вокруг.
var m3 = Regex.Match(pattern, item); // Wrong
var m3 = Regex.Match(item, pattern); // Correct
Я заметил подобное поведение. Я также задался вопросом, почему скомпилированная версия будет медленнее, но заметила, что выше определенного числа вызовов, скомпилированная версия быстрее. Таким образом, я вырыл в Отражатель немного, и я заметил, что для скомпилированного Regex, существует все еще немного установки, которая выполняется на первом вызове (а именно, создавая экземпляр соответствующего RegexRunner
объект).
В моем тесте я нашел, что, если я переместил и конструктора и начальный одноразовый вызов к regex вне таймера, запускаются, скомпилированный regex, выигранный, неважно, сколько повторений я работал.
Кстати, кэширование, которое платформа делает при использовании статичный Regex
методы являются оптимизацией, которую это только необходимо при использовании статичный Regex
методы. Это вызвано тем, что каждый вызов к помехам Regex
метод создает новое Regex
объект. В Regex
конструктор класса это должно проанализировать шаблон. Кэширование позволяет последующие вызовы помех Regex
методы к повторному использованию RegexTree
проанализированный от первого вызова, таким образом, избегая шага парсинга.
Когда Вы используете методы экземпляра для сингла Regex
объект, затем это не проблема. Парсинг все еще только выполняется одно время (при создании объекта). Кроме того, Вы добираетесь, чтобы не выполнять все другие код в конструкторе, а также выделение "кучи" (и последующая сборка "мусора").
Martin Brown заметил, что Вы инвертировали аргументы своим помехам Regex
звоните (хорошая выгода, Martin). Я думаю, что Вы найдете, что при фиксации этого экземпляр (не - скомпилированный) regex разобьет статические вызовы каждый раз. Необходимо также найти, что, учитывая мои результаты выше, скомпилированный экземпляр будет биться не - скомпилировал один, также.
НО: необходимо действительно прочитать сообщение Jeff Atwood на скомпилированном regexes перед движением, вслепую применяя ту опцию к каждому regex, который Вы создаете.
Если Вы постоянно соответствуете той же строке с помощью того же шаблона, который может объяснить, почему кэшированная версия немного быстрее, чем скомпилированная версия.