«Этот проект начался с Stack Overflow», — так начинает свой рассказ разработчик.
Stack Overflow известен большинству общественности как платформа, используемая программистами. Но сегодня он включает в себя больше, чем просто мир программного обеспечения. Я имею в виду, мы можем сказать, что это во всех сферах нашей жизни.
На него нажимают много раз в день многие люди в мире программного обеспечения. область использования; иногда создание проекта, иногда исправление синтаксической ошибки, иногда получение фрагмента кода и выход и многое другое.
Сегодня я поделюсь с вами самыми популярными вопросами, открытыми для Angular.
Давайте начнем!
Вопрос 1
Невозможно выполнить привязку к ‘ngModel’, так как это неизвестное свойство ‘input’
Это голосование 1774, 1,2 млн просмотров.
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
<div>
<label>Created:</label>
<input type="text" [ERROR ->][(ngModel)]="test" placeholder="foo" />
</div>
</div>"): InterventionDetails@4:28 ; Zone: <root> ; Task: Promise.then ; Value:
На самом деле проблема проста. Но это встречается много раз у многих людей. Этот тип ошибки обычно является ошибкой модуля. И если в ошибке упоминается [(ngModel)]
, это означает, что вам нужно импортировать FormsModule в ваш файл module.ts.
Откройте соответствующий файл модуля, содержащий ваш компонент, и
import { FormsModule } from '@angular/forms';
А затем напишите FormsModule в импорте.
вопрос 2
В чем разница между Promises и Observables?
Это голосование 1678, 647 тысяч просмотров
Ответ на картинке — это ответ, набравший наибольшее количество голосов.
Но я нашел другой ответ, более показательный. С этим справились по-простому.
И Promises, и Observables помогут нам работать с асинхронными функциями в JavaScript. Во многих случаях они очень похожи, однако между ними все же есть некоторые различия: промисы — это значения, которые разрешаются
asynchronous
способами, такими как вызовы HTTP. С другой стороны, наблюдаемые объекты имеют дело с последовательностью асинхронных событий. Основные различия между ними перечислены ниже:
Обещание:
- Наличие одного трубопровода
- Обычно используйте только с асинхронным возвратом данных
- Не легко отменить
Наблюдаемый:
- Могут быть отменены
- Поддаются повторному испытанию по своей природе, например, повторная попытка и повторная попытка, когда
- Потоковая передача данных в несколько конвейеров
- Наличие операций, подобных массиву, таких как карта, фильтр и т. д.
- Может быть создан из других источников, таких как события
- Это функции, на которые можно подписаться позже.
Кроме того, я создал для вас графическое изображение ниже, чтобы визуально показать различия:
Вопрос 3
Разница между конструктором и ngOnInit
Это голосование 1315, 652 просмотров
Angular по умолчанию предоставляет хук жизненного цикла
ngOnInit
.
Зачем использовать
ngOnInit
, если у нас уже естьconstructor
?
ngOnInit вызывается сразу после вызова конструктора. Конструктор — это метод по умолчанию, определенный машинописным текстом. ngOnInit — это метод жизненного цикла.
Другими словами, как и во всех объектно-ориентированных языках, когда из класса создается новый объект, конструктор запускается первым. После создания компонента и привязки всего, что касается компонента, запускается ngOnInit.
Вопрос 4
Невозможно выполнить привязку к formGroup, так как это неизвестное свойство формы
Это голосование 1084, 965 тысяч просмотров
Собственно, ответ на вопрос такой же, как и в 1-м вопросе. Есть проблема с модулем. Поэтому ему нужно что-то импортировать в файл module.ts.
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
Вопрос 5
Это голосование 1004, 662 просмотров
Я пишу приложение Angular, и у меня есть ответ HTML, который я хочу отобразить.
Как мне это сделать? Если я просто использую синтаксис привязки
{{myVal}}
, он кодирует все символы HTML (конечно).
Мне нужно как-то связать
innerHTML
изdiv
со значением переменной.
<div [innerHTML]="theHtmlString"></div>
Лучшим способом является использование [innerHTML].
Angular, отличного от Javascript. Если вы используетеinnerHTML,
, вы можете использовать с операциями привязки.
Чтение вопросов и изучение решений даст вам много информации. Поэтому чаще читайте и пересматривайте.
Спасибо, для получения дополнительной информации посетите Переполнение стека.
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.