|
|||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||||
Теущая ситуация 16.9.2024
ruticker 16.09.2024 8:12:18
В пятницу мы увидели уверенное движение на рынке. Индекс ММВБ опустился до минимумов четверга, а затем продемонстрировал уверенный рост, пробив важные уровни сопротивления и закрепившись выше. Текущая ситуация интересна: структура движения вниз с 10 сентября похожа на импульс, что предполагает возможность обновления минимумов пятницы после отката. Однако, есть вероятность, что при обновлении максимумов от 10 сентября этот сценарий будет отменён. Важно отметить, что пятничный рост также носит импульсный характер, и вскоре мы узнаем, какое из предположений окажется верным.
На недельном таймфрейме сформирован подтверждённый пин-бар, что указывает на возможность разворота рынка вверх. Однако, на дневном графике сигналом на разворот будет пробитие и тестирование сверху ключевых уровней сопротивления. Сейчас важно следить за тестом зоны 2733-2736 и 2757-2766. Если индекс пробьёт эти уровни, это будет первый сигнал о развороте вверх. В случае неудачи может начаться ещё одна волна вниз, возможно, с обновлением минимумов года.
Сегодня стоит внимательно наблюдать за тестом пробитых уровней в диапазоне 2678-2669. Отбой от них направит нас к ключевым сопротивлениям, тогда как возврат под эти уровни увеличит шансы на новую волну вниз и возможное обновление минимумов года.
Отраслевые данные: банки и телекомы показали восстановление, остальные сектора преодолели локальные сопротивления, однако индекс РГБИ завершил день в минусе.
Что касается мировой ситуации:
- Американский рынок продолжает рост, цели — обновление исторических максимумов. Поддержки на уровнях 5478 и 5302.
- Евро-доллар отскочил от поддержки на 1,1029 и нацелен на 1,1284.
- Золото достигло новых высот с целью на 2666, пока ключевые поддержки остаются нетронутыми.
- Нефть достигла сопротивления на 72,89, и если уровень будет пройден, то следующий этап роста — до 73,48 и выше.
- Юань немного укрепился, ближайшая поддержка на 12,515, цели — 13,02 и выше.
Заключение: сегодня важно наблюдать за тестом пробитых уровней. Результат их прохождения или отбоя задаст тон дальнейшему движению рынка.
ии я вижу хорошо пересказал, но во избежание конфликта, лучше с автором связаться
а кто автор?
https://smart-lab.ru/my/RomanAndreev/
Я не могу следить за всей выборкой из постов которые делает нейросеть или копипастят пользователи.
Если он хочет, он может самостоятельно делать перепосты со ссылкой на свой канал без ограничений
А можно без аналитики ИИ?
И поменьше ИИ текста на главной.
Ну и без постов в стиле ситуативного "аналитика" (Если вверх - то вверх, а если вниз - то вниз)
Спасибо
В предудущих сообщених пользователи писали что читают новости
К тому же если есть идеи как по другому добавлять на сайт тематический текст, желательно дешево и много, с удовольствием выслушаю
YeschatНовый чат
Исследуйте GPT
Чаты
оптимизируй
- ...
✨Free
Обновить
Мой Аккаунт
Выйти
Claude3.5Sonnet
You
есть ли docking layout в angular material
2024-09-22 22:51:24
YesChatClaude 3.5 Sonnet
В Angular Material нет встроенного компонента для создания docking layout (макета с возможностью перетаскивания и закрепления панелей). Angular Material в основном фокусируется на предоставлении базовых UI-компонентов, соответствующих принципам Material Design.
Однако, есть несколько альтернативных вариантов для реализации docking layout в Angular-приложении:
- Использовать сторонние библиотеки:
- Angular Split (https://github.com/bertrandg/angular-split)
- Golden Layout (https://golden-layout.com/)
- AG Grid (https://www.ag-grid.com/) - имеет функциональность dock manager
- Реализовать собственное решение, используя:
- CSS Grid или Flexbox для базовой структуры
- Angular CDK Drag and Drop module для функциональности перетаскивания
- Собственную логику для управления состоянием и позиционированием панелей
- Адаптировать решения из других фреймворков, например, react-reflex (https://github.com/leefsmp/Re-Flex), переписав их на Angular.
Если вам нужна более подробная информация о каком-либо из этих подходов или помощь в начале реализации, дайте знать, и я с удовольствием помогу.
2024-09-22 22:51:24Copy
You
напиши как использовать Angular Split
2024-09-22 22:52:10
YesChatClaude 3.5 Sonnet
Конечно, я расскажу вам, как использовать Angular Split для создания docking layout в вашем Angular-приложении.
typescriptCopy code // Шаг 1: Установка // Сначала установите Angular Split с помощью npm: // npm install angular-split // Шаг 2: Импорт модуля // В вашем app.module.ts или в соответствующем модуле: import { AngularSplitModule } from 'angular-split'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule ], // ... }) export class AppModule { } // Шаг 3: Использование в компоненте // В вашем component.ts файле: import { Component } from '@angular/core'; @Component({ selector: 'app-split-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> Левая панель </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> Верхняя правая панель </as-split-area> <as-split-area [size]="50"> Нижняя правая панель </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } `] }) export class SplitExampleComponent { } // Шаг 4: Стилизация (опционально) // В вашем глобальном стилевом файле (например, styles.css): /* @import "~angular-split/css/angular-split.css"; */ // Это импортирует базовые стили Angular Split. Вы можете их кастомизировать по необходимости.
Вот краткое объяснение основных моментов:
- Установка: Angular Split устанавливается через npm.
- Импорт модуля: AngularSplitModule импортируется в ваш AppModule или другой соответствующий модуль.
- Использование в компоненте:
<as-split>
- основной контейнер.direction
определяет ориентацию разделения (горизонтальная или вертикальная).<as-split-area>
представляет каждую панель.[size]
устанавливает начальный размер панели в процентах.
- Вы можете вкладывать split-контейнеры друг в друга для создания более сложных layouts.
- Стилизация: Импорт базовых стилей Angular Split опционален, но может быть полезен для начала.
Этот пример создает layout с двумя основными панелями: левой (30% ширины) и правой (70% ширины). Правая панель дополнительно разделена на верхнюю и нижнюю части.
Вы можете настроить размеры, добавить содержимое в панели и использовать дополнительные функции Angular Split, такие как минимальные/максимальные размеры, блокировка перетаскивания и др.
Если у вас есть вопросы по конкретным аспектам использования Angular Split или вы хотите расширить функциональность, дайте знать!
2024-09-22 22:52:10Copy
You
будет ли этот код совместим с mat-card
2024-09-22 22:52:40
YesChatClaude 3.5 Sonnet
Да, код с использованием Angular Split вполне совместим с компонентами Angular Material, включая mat-card. Давайте рассмотрим пример, как можно интегрировать mat-card в наш layout с Angular Split.
typescriptCopy code // В вашем app.module.ts: import { AngularSplitModule } from 'angular-split'; import { MatCardModule } from '@angular/material/card'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule, MatCardModule ], // ... }) export class AppModule { } // В вашем component.ts файле: import { Component } from '@angular/core'; @Component({ selector: 'app-split-card-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> <mat-card> <mat-card-header> <mat-card-title>Левая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое левой панели </mat-card-content> </mat-card> </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> <mat-card> <mat-card-header> <mat-card-title>Верхняя правая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое верхней правой панели </mat-card-content> </mat-card> </as-split-area> <as-split-area [size]="50"> <mat-card> <mat-card-header> <mat-card-title>Нижняя правая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое нижней правой панели </mat-card-content> </mat-card> </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } mat-card { height: 100%; box-sizing: border-box; } `] }) export class SplitCardExampleComponent { }
В этом обновленном примере:
- Мы импортировали
MatCardModule
вapp.module.ts
. - В шаблоне компонента мы обернули содержимое каждой
<as-split-area>
в<mat-card>
. - Использовали стандартную структуру mat-card с
<mat-card-header>
и<mat-card-content>
. - Добавили стили, чтобы mat-card занимала всю высоту своего контейнера (as-split-area).
Важные моменты:
- Убедитесь, что вы установили и настроили Angular Material в вашем проекте.
- Может потребоваться дополнительная стилизация для оптимального отображения карточек внутри split-областей.
- Обратите внимание на настройку высоты. В примере мы задали фиксированную высоту для хост-элемента (500px). В реальном приложении вы, вероятно, захотите использовать более гибкий подход к управлению высотой.
Такая комбинация Angular Split и mat-card позволяет создать интерактивный и визуально привлекательный layout с возможностью изменения размеров панелей.
Если у вас есть конкретные требования к дизайну или функциональности, или если вы хотите добавить другие компоненты Material внутрь этой структуры, дайте знать, и я помогу вам адаптировать код.
2024-09-22 22:52:40Copy
You
как перетаскивать mat-card в твоем примере
2024-09-22 22:53:29
YesChatClaude 3.5 Sonnet
Для реализации возможности перетаскивания mat-card в нашем примере с Angular Split, мы можем использовать Angular CDK Drag and Drop module. Это позволит нам создать интерактивный интерфейс, где пользователи смогут перемещать карточки между панелями.
Давайте модифицируем наш пример, чтобы добавить эту функциональность:
typescriptCopy code // В вашем app.module.ts: import { AngularSplitModule } from 'angular-split'; import { MatCardModule } from '@angular/material/card'; import { DragDropModule } from '@angular/cdk/drag-drop'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule, MatCardModule, DragDropModule ], // ... }) export class AppModule { } // В вашем component.ts файле: import { Component } from '@angular/core'; import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'; @Component({ selector: 'app-split-card-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> <div cdkDropList #leftList="cdkDropList" [cdkDropListData]="leftItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of leftItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> <div cdkDropList #topRightList="cdkDropList" [cdkDropListData]="topRightItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of topRightItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> <as-split-area [size]="50"> <div cdkDropList #bottomRightList="cdkDropList" [cdkDropListData]="bottomRightItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of bottomRightItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } .list-container { height: 100%; overflow-y: auto; } mat-card { margin-bottom: 10px; cursor: move; } `] }) export class SplitCardExampleComponent { leftItems = [ { title: 'Карточка 1', content: 'Содержимое карточки 1' }, { title: 'Карточка 2', content: 'Содержимое карточки 2' }, ]; topRightItems = [ { title: 'Карточка 3', content: 'Содержимое карточки 3' }, ]; bottomRightItems = [ { title: 'Карточка 4', content: 'Содержимое карточки 4' }, ]; drop(event: CdkDragDrop<any[]>) { if (event.previousContainer === event.container) { moveItemInArray(event.container.data, event.previousIndex, event.currentIndex); } else { transferArrayItem( event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex, ); } } }
Вот что изменилось в этом примере:
- Мы добавили импорт
DragDropModule
из@angular/cdk/drag-drop
вapp.module.ts
. - В компоненте мы импортировали необходимые функции из CDK Drag and Drop.
- Мы создали массивы
leftItems
,topRightItems
иbottomRightItems
для хранения данных карточек. - Каждая
<as-split-area>
теперь содержит<div>
с директивойcdkDropList
. Это определяет области, куда можно перетаскивать карточки. - Каждая
<mat-card>
теперь имеет директивуcdkDrag
, что делает её перетаскиваемой. - Мы добавили метод
drop()
, который обрабатывает события перетаскивания. Он позволяет перемещать карточки как внутри одного списка, так и между разными списками. - Стили были обновлены для улучшения внешнего вида и функциональности перетаскивания.
Теперь вы можете перетаскивать карточки между всеми тремя панелями, а также менять их порядок внутри каждой панели.
Несколько советов по использованию:
- Убедитесь, что у вас установлен пакет
@angular/cdk
. - Вы можете настроить анимации перетаскивания для более плавного визуального эффекта.
- Рассмотрите возможность добавления визуальных подсказок при перетаскивании (например, изменение цвета целевой зоны).
Если у вас есть какие-либо вопросы по этой реализации или вы хотите добавить дополнительную функциональность, не стесняйтесь спрашивать!
2024-09-22 22:53:29CopyRetry
Доступ к вебу
Оставшиеся использования на сегодня:1,Обновить сейчас
Создавайте потрясающие логотипы с помощью нашего ИИ!
Преобразуйте текст в креативные логотипы. Наслаждайтесь продвинутым редактированием для точного контроля и экспортируйте в форматах PNG или SVG.
https://js.stripe.com/v3/controller-with-preconnect-7801ab5ed3c574319c2c3bf2ee48aa05.html#apiKey=pk_live_51OtspVDS0chedQ2L6G5Fq51cOIYP1zbuKFJcVxh4APw5txviX9F8IjD2PmF0QBEd2KwUPGDTGiOlhSmOVkY6PQZP005m6ZhXeA&stripeJsId=9c985cda-5d0b-4fd9-a43f-1d27eb6ad52c&controllerCount=1&isCheckout=false&stripeJsLoadTime=1727034603598&manualBrowserDeprecationRollout=false&mids[guid]=NA&mids[muid]=17b2e0d8-80a8-4940-b3ae-3f407ad722d7a25dc0&mids[sid]=1c0bbc5e-1a4d-4eda-9d5b-4e2ba3cc458ee8c988&referrer=https%3A%2F%2Fwww.yeschat.ai%2Fru%2Fyeschat&controllerId=__privateStripeController3031YeschatНовый чат
Исследуйте GPT
Чаты
оптимизируй
- ...
✨Free
Обновить
Мой Аккаунт
Выйти
Claude3.5Sonnet
You
есть ли docking layout в angular material
2024-09-22 22:51:24
YesChatClaude 3.5 Sonnet
В Angular Material нет встроенного компонента для создания docking layout (макета с возможностью перетаскивания и закрепления панелей). Angular Material в основном фокусируется на предоставлении базовых UI-компонентов, соответствующих принципам Material Design.
Однако, есть несколько альтернативных вариантов для реализации docking layout в Angular-приложении:
- Использовать сторонние библиотеки:
- Angular Split (https://github.com/bertrandg/angular-split)
- Golden Layout (https://golden-layout.com/)
- AG Grid (https://www.ag-grid.com/) - имеет функциональность dock manager
- Реализовать собственное решение, используя:
- CSS Grid или Flexbox для базовой структуры
- Angular CDK Drag and Drop module для функциональности перетаскивания
- Собственную логику для управления состоянием и позиционированием панелей
- Адаптировать решения из других фреймворков, например, react-reflex (https://github.com/leefsmp/Re-Flex), переписав их на Angular.
Если вам нужна более подробная информация о каком-либо из этих подходов или помощь в начале реализации, дайте знать, и я с удовольствием помогу.
2024-09-22 22:51:24Copy
You
напиши как использовать Angular Split
2024-09-22 22:52:10
YesChatClaude 3.5 Sonnet
Конечно, я расскажу вам, как использовать Angular Split для создания docking layout в вашем Angular-приложении.
typescriptCopy code // Шаг 1: Установка // Сначала установите Angular Split с помощью npm: // npm install angular-split // Шаг 2: Импорт модуля // В вашем app.module.ts или в соответствующем модуле: import { AngularSplitModule } from 'angular-split'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule ], // ... }) export class AppModule { } // Шаг 3: Использование в компоненте // В вашем component.ts файле: import { Component } from '@angular/core'; @Component({ selector: 'app-split-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> Левая панель </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> Верхняя правая панель </as-split-area> <as-split-area [size]="50"> Нижняя правая панель </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } `] }) export class SplitExampleComponent { } // Шаг 4: Стилизация (опционально) // В вашем глобальном стилевом файле (например, styles.css): /* @import "~angular-split/css/angular-split.css"; */ // Это импортирует базовые стили Angular Split. Вы можете их кастомизировать по необходимости.
Вот краткое объяснение основных моментов:
- Установка: Angular Split устанавливается через npm.
- Импорт модуля: AngularSplitModule импортируется в ваш AppModule или другой соответствующий модуль.
- Использование в компоненте:
<as-split>
- основной контейнер.direction
определяет ориентацию разделения (горизонтальная или вертикальная).<as-split-area>
представляет каждую панель.[size]
устанавливает начальный размер панели в процентах.
- Вы можете вкладывать split-контейнеры друг в друга для создания более сложных layouts.
- Стилизация: Импорт базовых стилей Angular Split опционален, но может быть полезен для начала.
Этот пример создает layout с двумя основными панелями: левой (30% ширины) и правой (70% ширины). Правая панель дополнительно разделена на верхнюю и нижнюю части.
Вы можете настроить размеры, добавить содержимое в панели и использовать дополнительные функции Angular Split, такие как минимальные/максимальные размеры, блокировка перетаскивания и др.
Если у вас есть вопросы по конкретным аспектам использования Angular Split или вы хотите расширить функциональность, дайте знать!
2024-09-22 22:52:10Copy
You
будет ли этот код совместим с mat-card
2024-09-22 22:52:40
YesChatClaude 3.5 Sonnet
Да, код с использованием Angular Split вполне совместим с компонентами Angular Material, включая mat-card. Давайте рассмотрим пример, как можно интегрировать mat-card в наш layout с Angular Split.
typescriptCopy code // В вашем app.module.ts: import { AngularSplitModule } from 'angular-split'; import { MatCardModule } from '@angular/material/card'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule, MatCardModule ], // ... }) export class AppModule { } // В вашем component.ts файле: import { Component } from '@angular/core'; @Component({ selector: 'app-split-card-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> <mat-card> <mat-card-header> <mat-card-title>Левая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое левой панели </mat-card-content> </mat-card> </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> <mat-card> <mat-card-header> <mat-card-title>Верхняя правая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое верхней правой панели </mat-card-content> </mat-card> </as-split-area> <as-split-area [size]="50"> <mat-card> <mat-card-header> <mat-card-title>Нижняя правая панель</mat-card-title> </mat-card-header> <mat-card-content> Содержимое нижней правой панели </mat-card-content> </mat-card> </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } mat-card { height: 100%; box-sizing: border-box; } `] }) export class SplitCardExampleComponent { }
В этом обновленном примере:
- Мы импортировали
MatCardModule
вapp.module.ts
. - В шаблоне компонента мы обернули содержимое каждой
<as-split-area>
в<mat-card>
. - Использовали стандартную структуру mat-card с
<mat-card-header>
и<mat-card-content>
. - Добавили стили, чтобы mat-card занимала всю высоту своего контейнера (as-split-area).
Важные моменты:
- Убедитесь, что вы установили и настроили Angular Material в вашем проекте.
- Может потребоваться дополнительная стилизация для оптимального отображения карточек внутри split-областей.
- Обратите внимание на настройку высоты. В примере мы задали фиксированную высоту для хост-элемента (500px). В реальном приложении вы, вероятно, захотите использовать более гибкий подход к управлению высотой.
Такая комбинация Angular Split и mat-card позволяет создать интерактивный и визуально привлекательный layout с возможностью изменения размеров панелей.
Если у вас есть конкретные требования к дизайну или функциональности, или если вы хотите добавить другие компоненты Material внутрь этой структуры, дайте знать, и я помогу вам адаптировать код.
2024-09-22 22:52:40Copy
You
как перетаскивать mat-card в твоем примере
2024-09-22 22:53:29
YesChatClaude 3.5 Sonnet
Для реализации возможности перетаскивания mat-card в нашем примере с Angular Split, мы можем использовать Angular CDK Drag and Drop module. Это позволит нам создать интерактивный интерфейс, где пользователи смогут перемещать карточки между панелями.
Давайте модифицируем наш пример, чтобы добавить эту функциональность:
typescriptCopy code // В вашем app.module.ts: import { AngularSplitModule } from 'angular-split'; import { MatCardModule } from '@angular/material/card'; import { DragDropModule } from '@angular/cdk/drag-drop'; @NgModule({ imports: [ // ...другие импорты AngularSplitModule, MatCardModule, DragDropModule ], // ... }) export class AppModule { } // В вашем component.ts файле: import { Component } from '@angular/core'; import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop'; @Component({ selector: 'app-split-card-example', template: ` <as-split direction="horizontal"> <as-split-area [size]="30"> <div cdkDropList #leftList="cdkDropList" [cdkDropListData]="leftItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of leftItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> <as-split-area [size]="70"> <as-split direction="vertical"> <as-split-area [size]="50"> <div cdkDropList #topRightList="cdkDropList" [cdkDropListData]="topRightItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of topRightItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> <as-split-area [size]="50"> <div cdkDropList #bottomRightList="cdkDropList" [cdkDropListData]="bottomRightItems" (cdkDropListDropped)="drop($event)" class="list-container"> <mat-card *ngFor="let item of bottomRightItems" cdkDrag> <mat-card-header> <mat-card-title>{{item.title}}</mat-card-title> </mat-card-header> <mat-card-content> {{item.content}} </mat-card-content> </mat-card> </div> </as-split-area> </as-split> </as-split-area> </as-split> `, styles: [` :host { display: block; height: 500px; } .list-container { height: 100%; overflow-y: auto; } mat-card { margin-bottom: 10px; cursor: move; } `] }) export class SplitCardExampleComponent { leftItems = [ { title: 'Карточка 1', content: 'Содержимое карточки 1' }, { title: 'Карточка 2', content: 'Содержимое карточки 2' }, ]; topRightItems = [ { title: 'Карточка 3', content: 'Содержимое карточки 3' }, ]; bottomRightItems = [ { title: 'Карточка 4', content: 'Содержимое карточки 4' }, ]; drop(event: CdkDragDrop<any[]>) { if (event.previousContainer === event.container) { moveItemInArray(event.container.data, event.previousIndex, event.currentIndex); } else { transferArrayItem( event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex, ); } } }
Вот что изменилось в этом примере:
- Мы добавили импорт
DragDropModule
из@angular/cdk/drag-drop
вapp.module.ts
. - В компоненте мы импортировали необходимые функции из CDK Drag and Drop.
- Мы создали массивы
leftItems
,topRightItems
иbottomRightItems
для хранения данных карточек. - Каждая
<as-split-area>
теперь содержит<div>
с директивойcdkDropList
. Это определяет области, куда можно перетаскивать карточки. - Каждая
<mat-card>
теперь имеет директивуcdkDrag
, что делает её перетаскиваемой. - Мы добавили метод
drop()
, который обрабатывает события перетаскивания. Он позволяет перемещать карточки как внутри одного списка, так и между разными списками. - Стили были обновлены для улучшения внешнего вида и функциональности перетаскивания.
Теперь вы можете перетаскивать карточки между всеми тремя панелями, а также менять их порядок внутри каждой панели.
Несколько советов по использованию:
- Убедитесь, что у вас установлен пакет
@angular/cdk
. - Вы можете настроить анимации перетаскивания для более плавного визуального эффекта.
- Рассмотрите возможность добавления визуальных подсказок при перетаскивании (например, изменение цвета целевой зоны).
Если у вас есть какие-либо вопросы по этой реализации или вы хотите добавить дополнительную функциональность, не стесняйтесь спрашивать!
2024-09-22 22:53:29CopyRetry
Доступ к вебу
Оставшиеся использования на сегодня:1,Обновить сейчас
Создавайте потрясающие логотипы с помощью нашего ИИ!
Преобразуйте текст в креативные логотипы. Наслаждайтесь продвинутым редактированием для точного контроля и экспортируйте в форматах PNG или SVG.
https://js.stripe.com/v3/controller-with-preconnect-7801ab5ed3c574319c2c3bf2ee48aa05.html#apiKey=pk_live_51OtspVDS0chedQ2L6G5Fq51cOIYP1zbuKFJcVxh4APw5txviX9F8IjD2PmF0QBEd2KwUPGDTGiOlhSmOVkY6PQZP005m6ZhXeA&stripeJsId=9c985cda-5d0b-4fd9-a43f-1d27eb6ad52c&controllerCount=1&isCheckout=false&stripeJsLoadTime=1727034603598&manualBrowserDeprecationRollout=false&mids[guid]=NA&mids[muid]=17b2e0d8-80a8-4940-b3ae-3f407ad722d7a25dc0&mids[sid]=1c0bbc5e-1a4d-4eda-9d5b-4e2ba3cc458ee8c988&referrer=https%3A%2F%2Fwww.yeschat.ai%2Fru%2Fyeschat&controllerId=__privateStripeController3031Залогинтесь, что бы оставить свой комментарий