Scilink
- Общая информация Название компонента: Научное цитирование Описание: Этот компонент позволяет пользователю вводить текст для поиска научных статей. Результаты поиска отображаются в виде карточек с информацией о статьях, а также в текстовом поле отображается введенный текст.
- Структура компонента Компонент состоит из следующих основных частей:
ion-header: Заголовок приложения с названием "Научное цитирование". ion-content: Основное содержимое компонента, включая поле ввода, кнопку поиска и область для отображения результатов. 3. Использование Импорт компонента: Убедитесь, что вы импортировали необходимые модули Ionic в ваш модуль приложения.
Пример использования в шаблоне:
HTML
копия
Содержит заголовок приложения, оформленный с помощью ion-toolbar и ion-title. ion-content:
Основная область компонента, содержащая элементы управления и результаты поиска. Поле ввода (ion-input):
Позволяет пользователю вводить текст для поиска. Событие (keyup.enter) привязано к методу search_btn(), что позволяет выполнять поиск по нажатию клавиши Enter. Кнопка поиска (ion-button):
Кнопка с текстом "Поиск", которая вызывает метод search_btn() при нажатии. Текстовое поле (ion-textarea):
Отображает результат поиска (введенный текст) в режиме только для чтения. Карточки статей (ion-card):
Отображаются, если массив filtered_articles содержит элементы. Каждая карточка содержит изображение, заголовок статьи (ссылка на DOI), аннотацию и авторов. Сообщение об отсутствии результатов:
Отображается, если массив filtered_articles пуст, с помощью ng-template. 5. Входные параметры filtered_articles:
Массив статей, которые будут отображаться в карточках. Каждая статья должна содержать следующие свойства: img_name: URL изображения статьи. doi: DOI статьи (ссылка). a_name: Название статьи. abstract: Аннотация статьи. a_authors: Авторы статьи. Result:
Строка, содержащая текст, введенный пользователем. Отображается в текстовом поле. 6. Методы search_btn(): Описание: Метод, который вызывается при нажатии на кнопку "Поиск" или при нажатии клавиши Enter. Он обрабатывает введенный текст, обновляет переменную Result и фильтрует статьи, обновляя массив filtered_articles. 7. Примечания Убедитесь, что стили для классов input-container, full-width-input, center-button, cards-container, article-card, logo и no-results-message определены для корректного отображения компонента. Компонент должен быть интегрирован в родительский компонент или модуль, чтобы получать данные о статьях и обрабатывать события. Документация для компонента ScilinkComponent
- Общая информация Название компонента: ScilinkComponent Описание: Этот компонент отвечает за получение и отображение списка научных статей. Пользователь может вводить текст для поиска статей, и компонент будет фильтровать результаты на основе введенного текста.
- Импортируемые модули HttpClient: Используется для выполнения HTTP-запросов к API и получения данных о статьях. IonicModule: Модуль Ionic, необходимый для использования компонентов Ionic. CommonModule: Общий модуль Angular, который предоставляет общие директивы и пайпы. DataService: Пользовательский сервис, который предоставляет метод для получения данных о статьях.
- Интерфейс Article TypeScript interface Article { doi: string; // DOI статьи a_name: string; // Название статьи a_authors: string; // Авторы статьи abstract: string; // Аннотация статьи img_name: string; // URL изображения статьи }
- Структура компонента Декоратор @Component: standalone: true: Указывает, что компонент является самостоятельным и не требует родительского модуля. selector: 'app-scilink': Используется для включения компонента в шаблоны. templateUrl: Путь к HTML-шаблону компонента. styleUrls: Путь к стилям компонента.
- Свойства класса articles_cards:
Массив объектов типа Article, который хранит все загруженные статьи. filtered_articles:
Массив объектов типа Article, который хранит отфильтрованные статьи на основе пользовательского ввода. searchText:
Строка, которая хранит текст, введенный пользователем для поиска. Result:
Строка, которая отображает сообщение о поиске, основанное на пользовательском вводе. 6. Методы класса constructor(private http: HttpClient, private data: DataService):
Конструктор класса, который инициализирует HttpClient и DataService. ngOnInit():
Метод жизненного цикла Angular, который вызывается при инициализации компонента. Он загружает данные о статьях через DataService и сохраняет их в articles_cards и filtered_articles. search_btn():
Описание: Метод, который вызывается при нажатии кнопки поиска или нажатии клавиши Enter. Он обрабатывает введенный текст, обновляет переменную Result и фильтрует статьи. Логика: Получает значение из поля ввода (ion-input). Если значение введено, фильтрует массив articles_cards по названию статьи (a_name), игнорируя регистр. Обновляет filtered_articles и Result с текстом поиска. Если значение не введено, сбрасывает searchText, восстанавливает все статьи и обновляет Result с сообщением о необходимости ввода текста. 7. Примечания Убедитесь, что DataService реализует метод getData(), который возвращает Observable с данными о статьях. Компонент должен быть интегрирован в родительский компонент или модуль, чтобы корректно отображать данные и обрабатывать события.