μ΄μ¨ μ 보
ν°λ―Έλ / cmd ν둬ννΈμμ ionic info
λ₯Ό μ€ννκ³ μλ μΆλ ₯μ λΆμ¬ λ£μ΅λλ€.
Ionic:
ionic (Ionic CLI) : 4.1.2 (C:\Users\fkrishna\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.0.0-beta.7
@angular-devkit/core : 0.7.5
@angular-devkit/schematics : 0.7.5
@angular/cli : 6.1.5
@ionic/ng-toolkit : 1.0.8
@ionic/schematics-angular : 1.0.6
System:
NodeJS : v8.11.3 (C:\Program Files\nodejs\node.exe)
npm : 5.6.0
OS : Windows 10
λ²κ·Έ μ€λͺ
3 κ° μμμ λ°°μ΄μ λ§λ€κ³
μ¬ν λ¨κ³
λμμ μ¬ννλ λ¨κ³ :
κ΄λ ¨ μ½λ
<ion-content>
<ion-list>
<ion-item-sliding *ngFor="let n of numbers; index as i">
<ion-item>
{{ n }}
</ion-item>
<ion-item-options>
<ion-item-option " (click)="remove(i)">Delete</ion-item-option>
</ion-item-options>
</ion-item-sliding>
</ion-list>
numbers = ['1','2','3'];
constructor() {}
remove(i) {
this.numbers.splice(i, 1);
}
μμλλ λμ
μ¬λΌμ΄λ©μ μμλ₯Ό μ κ±°ν νμλ κ° νλͺ©μ λν΄ μ¬λ°λ₯΄κ² μλνλ€κ³ κ°μ ν©λλ€.
μΆκ° 컨ν
μ€νΈ
λ¬Έμ μ κ΄λ ¨λ κΈ°ν μ 보λ₯Ό λμ΄νμμμ€. μ€ν μΆμ , κ΄λ ¨ λ¬Έμ , ν΄κ²° λ°©λ²μ λν μ μ, Stack Overflow λ§ν¬, ν¬λΌ λ§ν¬, μ€ν¬λ¦° μ·, OS (ν΄λΉλλ κ²½μ°) λ±
λλ κ°μ λ¬Έμ κ° μμ΅λλ€.
μ°Έκ³ λ‘ νλͺ© μμ ν μ¬λΌμ΄λ© νλͺ©μ΄ μλνμ§ μμ΅λλ€. μ±μ λ€μλ‘λν΄μΌν©λλ€.
@ quynh-ng λλ κ°μ λ¬Έμ κ° μλλ°, beta.5λ‘ λ€μ΄ κ·Έλ μ΄λν΄μΌνμ΅λλ€ :(
μκΈ΄, κ·Έλ₯ κ·Έ λ¬Έμ μ μ°©μ§νμ΅λλ€. μ¬λΌμ΄λ© λͺ©λ‘μ νλͺ©μ λν μμ μΌλ‘ μμ νλ©΄ λλ¨Έμ§ νλͺ©μ λ μ΄μ μ¬λΌμ΄λ ν μ μμ΅λλ€.
μΆμ : λ² ν .8μμλ λ§μ°¬κ°μ§μ λλ€.
@ quynh-ng κ°μ -_-
λν μμμ λμ λͺ©λ‘κ³Ό ν¨κ» λμΌν λ¬Έμ κ° λ°μνμ΅λλ€.
μ£Όλ³μ νν€μΉ ν μμλ₯Ό μλ‘ κ³ μΉμ§ μμλ μ μλνλ€λ κ²μ μμμ΅λλ€. λ¬Έμλ₯Ό 보면 νλͺ© λλ λͺ©λ‘μ λͺ¨λ μ¬λΌμ΄λ© νλͺ©μ λ«λ λ°©λ²μ΄ μμ΅λλ€. μ΄κ²μ μ¬μ©νλ©΄ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€.
#dynamicList
@ViewChild('dynamicList') dynamicList;
ν΄λΉ λͺ©λ‘μ μ‘μΈμ€<ion-item-option>
ν΄λ¦νλ©΄ λ μ½λλ₯Ό μμ νκΈ° μ μ dynamicList.closeSlidingItems()
νΈλ¦¬κ±°λ©λλ€.κ·Έλμ μ΄κ²μ΄ λμμ΄λκΈ°λ₯Ό λ°λλλ€. λλ μ΅κ·€λ¬κ° μ²μμ΄λ―λ‘ μ΄λ¦¬μμ μΌμνκ³ μμ§ μκΈ°λ₯Ό λ°λλλ€.
λͺ¨λ μμ μ΄ λ§ν λ₯Ό μ°©μ©νλ κ²μ μλλλ€. @jcollings κ° ν΄κ²°μ± μ λλ€!
html :
<ion-list #slidingList>
<ion-item-sliding>
<ion-item-options side="end">
<ion-item-option (click)="delete()">
</ion-item-option>
</ion-item-options>
</ion-item-sliding>
</ion-list>
TS :
import {List} from '@ionic/angular';
@ViewChild('slidingList') slidingList: List;
async delete() {
// something
await this.slidingList.closeSlidingItems();
}
@peterpeterparker μ μλνμ§λ§ ν΄κ²°μ± λλ ν΄κ²° λ°©λ²μ λκΉ?
@ Anthony2539 μλ§ λ λ€ μ½κ° : stuck_out_tongue_winking_eye :
κΈ°λ₯ μμ²μΈμ§ λ²κ·ΈμΈμ§ λͺ¨λ₯΄κ² μ΅λλ€.
μ΅κ·Όμ λ―Έλλ¬μ§μ λν 컀λ°μ΄ μμλλ° λ¬Έμ κ° μ¬λΌμ§μ§λ λͺ¨λ₯΄κ² λ€μ
μ΄μ¨λ , ν΄κ²° λ°©λ²μ΄ μλνκ³ λ΄ μ±μ΄ μλνμ§ μλλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€.
e2e ν μ€νΈλ₯Ό λ€μ ν΅κ³ΌνκΈ° μν΄ λ€μ΄ κ·Έλ μ΄λν΄μΌνκΈ° λλ¬Έμ λ²κ·ΈλΌκ³ μκ°ν©λλ€.
μ΄ λ¬Έμ λ λΆλͺ ν λ²κ·Έμ λλ€. νλͺ©μ μ κ±°νλ©΄ μμ νκΈ° μ μ λ«μ νμκ° μμ΅λλ€. μ¬λ°μ΅λλ€.
λ λ€λ₯Έ ν΄κ²° λ°©λ²μ ItemSlidingμ λν μ°Έμ‘°λ₯Ό delete λ©μλμ μ λ¬ν λ€μ λͺ©λ‘ νλͺ©μ μμ νκΈ° μ μ ν΄λΉ νλͺ©μ λ«λ κ²μ λλ€.
HTML :
<ion-list>
<ion-item-sliding *ngFor="let item of items" #slidingItem>
<ion-item>>
{{item.text}}
</ion-item>
<ion-item-options (ionSwipe)="deleteItem(slidingItem, item)">
<ion-button color="danger" (click)="deleteItem(slidingItem, item)">
<ion-icon name="trash"></ion-icon>
Delete
</ion-button>
</ion-item-options>
</ion-item-sliding>
</ion-list>
TS :
async deleteItem(slidingItem: ItemSliding, item: Item) {
slidingItem.close(); // <-- this is the important bit!
await this.itemService.deleteItem(item);
}
@ mimacom-klier μ λ¬Έμ λ₯Ό μλ²½νκ² ν΄κ²° ν΄μ£Όμ μ λλ¨ν κ°μ¬ν©λλ€.
λλ₯Ό μν΄ μλνμ§ μμ΅λλ€!
close
λλ closeSlidingItems
λ©μλλ₯Ό νΈμΆνκ±°λ νΈμΆνμ§ μκ³ ν΄κ²° λ°©λ²μ΄ μλνμ§ μμ΅λλ€.
λ΄κ° μμ μ°¨λ¦° κ²μ νλͺ©μ μ¨κ²Όλ€κ° λ€μ νμ ν ν μ¬λΌμ΄λ©μ΄ μλνμ§ μλ κ² κ°μ§λ§ νλͺ©μ μ¬λΌμ΄λ ν λ€μ λ²νΌμ΄ μμ΄μΌνλ μμΉλ₯Ό ν΄λ¦νλ©΄ μ€μ λ‘ λ²νΌ λμμ νΈλ¦¬κ±° ν μ μλ€λ κ²μ
λλ€.
λ€μμ Stackblitz μμ μ
λλ€.
Stackblitzμμλ @ionic/[email protected]
νκ³ μμ§λ§ λ‘컬 μ»΄ν¨ν°μ @ionic/[email protected]
μλ λ¬Έμ κ° μμ΅λλ€.
@bockoblur : Stackblitz μμ λ₯Ό νμΈνκ³ μ½κ° λμμ΅λλ€. λͺ©λ‘μμ νλͺ©μ μ€μ λ‘ μμ νλ©΄ ν΄κ²° λ°©λ²μ΄ μ λλ‘ μλνλ κ² κ°μ΅λλ€. λ¨μν μ¨κ²¨μ‘λ€κ° λ€μ νμλλ κ²½μ°μλ μ€λͺ νλλ‘ λμν©λλ€. μ΄κ²μ λ³νμ λ¬Έμ μΈ κ² κ°μ΅λλ€ : λͺ©λ‘ νλͺ© μμμ μ¬λ°λ₯΄κ² μ μ©λμ§ μλ λ²μ. ItemSliding κ΅¬μ± μμλ μ¬μ ν μ΄μ DOM μ°Έμ‘°λ₯Ό μ¬μ©νμ¬ νλͺ©μ λ²μ ν μ μμ΅λλ€. μμ λ μλ μ¬κΈ°μμ μ°Ύμ μ μμ΅λλ€. https://stackblitz.com/edit/ionic-4-item-sliding-show-hide-error-zxgbmf
μ‘°μ¬ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. μ μλν©λλ€.
κ·ΈλΌμλ λΆκ΅¬νκ³ μ΄κ²μ μ¬μ ν ββionic νμμ ν΄κ²°ν΄μΌ ν λ¬Έμ μ
λλ€ ...
@ mimacom-klier ν΄κ²° λ°©λ²μ μ΅μ Ionic (4.5.0)μμ μ μκ² ν¨κ³Όμ μ λλ€.
νΈμ§ : @jcollings μ루μ μ μ¬μ©νλ©΄ νλͺ© μΆκ° λ° / λλ μ λ°μ΄νΈμ μΆκ°λ‘ μλνμ¬ λμΌν λ¬Έμ κ° λ°μνμ΅λλ€. κ°μ¬ν©λλ€!
μ΄ μ루μ
μ λ€μμ μ¬μ©νμ¬ μ μκ² ν¨κ³Όμ μ
λλ€.
Ionic CLI : 4.5.0
Ionic νλ μ μν¬ : @ ionic / angular 4.0.0-beta.17
κ·Έλ¬λ λλ μ΄κ²μ΄ μ¬μ ν ν΄κ²°λμ΄μΌ ν λ¬Έμ λΌκ³ μκ°νλ©°, μ΄λ€ κ°λ°μλμ΄ λμμ κΈ°λν κ² κ°μ§ μμ΅λλ€.
μ λ λ§μ°¬κ°μ§μ λλ€. ν΄κ²° λ°©λ² shmorkaround. μ€μν κ²μ μ λ₯Ό ν° κ΅¬λ©μμ @jcollings μκ² κ°μ¬λ립λλ€.
Wauw ..μ΄ λ¬Έμ μ λν΄ ν루 μ’ μΌ λ¨Έλ¦¬λ₯Ό κ°μΈκ³ μμμ΅λλ€ (λͺ©λ‘ νλͺ©μ μ λ°μ΄νΈ ν νμλ μ¬λΌμ΄λκ° μλνμ§ μμ). μ΄μ κ·Έ μ΄μ λ₯Ό μμ λμ΅λλ€. ν΄κ²° λ°©λ²μ λν΄ @jcollings μκ²
μλ νμΈμ,
μλ λ¬Έμ μ μ§λ©΄ :
λ°νλ¬Ό:
Ion Item Slidingμ μ²μμλ§ μλν©λλ€. μ΄μ¨ νλͺ©μ μ¬λΌμ΄λ ν λ€μ λ€λ₯Έ νμ΄μ§λ‘ μ΄λνμ¬ λ€μ λμ μ€λ©΄ μλ΅μ΄ μ€μ§λ©λλ€.
@jcollingsκ° μ μν μμ μ μλνμ΅λλ€. λ€μκ³Ό κ°μ΄λ³΄κΈ°λ₯Ό λκ° λ λͺ¨λ μ΄μ¨ νλͺ© μ¬λΌμ΄λ©μ λ«μΌλ €κ³ νμ΅λλ€.
ionViewWillLeave() {
setTimeout(async() => {
console.log('sliding list: ', this.slidingList);
if(this.slidingList){
await this.slidingList.closeSlidingItems();
}
},1000);
}
νμ§λ§ μλνμ§ μμμ΅λλ€.
λ΄ μ¬λΌμ΄λ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
<ion-list #slidingList class="notifications" *ngIf="notificationCheck === 'true'">
<ion-item-sliding *ngFor="let notification of notifications; index as i;">
<ion-item lines="none" no-padding>
<ion-row>
<ion-col size="12" class="title">
{{notification.title}}
</ion-col>
<ion-col size="12" class="description">
{{notification.message}}
</ion-col>
<ion-col size="12" class="date-time">
{{notification.createdDate | date:'medium'}}
</ion-col>
<i class="left-arrow"></i>
</ion-row>
</ion-item>
<ion-item-options side="end">
<ion-item-option color="secondary" (click)="goToURL(notification.actionURL)">
<div slot="icon-only">
<i class="fa fa-edit" *ngIf="notification.actionType === 'UPDATE'"></i>
<i class="fa fa-eye" *ngIf="notification.actionType === 'VIEW'"></i>
</div>
</ion-item-option>
<ion-item-option color="danger" (click)="deleteNotifications(notification.id)">
<div slot="icon-only">
<i class="fa fa-trash"></i>
</div>
</ion-item-option>
</ion-item-options>
</ion-item-sliding>
</ion-list>
μ΅μ ionic λ²μ 4.0.0-rc.0μΌλ‘ μλνμ΅λλ€. λ¬Έμ κ° μ¬μ ν μ‘΄μ¬ν©λλ€.
μλ νμΈμ,
μ΄ λ¬Έμ λ₯Ό κ°μ§κ³ λμ 보μλλ° μ κ²½μ°μ Ion Item Sliderκ° μλ΅νμ§ μλ μμΈμ λ·°κ° λ³κ²½ λ λλ§λ€ μ¬λΌμ΄λ© μ΅μ μ΄ λ«νμ§ μλλ€λ κ²μ λλ€. κ·Έλμ λλ λ€μκ³Ό κ°μ μΌμνκ³ μλ²½νκ² μλνμ΅λλ€.
constructor(private location: Location, private router: Router) {
this.navigationSubscription = this.router.events.subscribe(async(e: any) => {
if (e instanceof NavigationStart) {
if(this.slidingList){
await this.slidingList.closeSlidingItems();
}
}
});
}
@jcollings λλΆμ λλ€.
λλ μ΄κ²μνμ§ μμλ€ :
.html
<ion-item-sliding #slidingItem>
<ion-item-option color="danger" (click)="del(slidingItem,carte)">Supprimer</ion-item-option>
in .ts
import { IonItemSliding } from '@ionic/angular';
async del(slidingItem: IonItemSliding, carte){
await slidingItem.close();
let index = this.cartes.indexOf(carte);
if(index > -1){
this.cartes.splice(index, 1);
}
}
μλ²½νκ² μλ
@jcollings λλΆμ
λλ€.
4.0.0-rc.0μμ λ¬Έμ κ° μ¬μ ν μ‘΄μ¬νλμ§ νμΈν μ μμ΅λλ€.
4.0.0-rc.1μλ μ‘΄μ¬νλμ§ νμΈν μ μμ΅λλ€.
μ΄ λ²κ·Έλ 4.0.0-rc.2μ μ¬μ ν μ‘΄μ¬ν©λλ€.
κ°μ μ€ν¬λ‘€ λ΄λΆμμ μ΄μ¨ νλͺ© μ¬λΌμ΄λ©μ μ¬μ©νλ―λ‘ List.closeSlidingItems ()λ₯Ό μ¬μ©ν μ μμ΅λλ€.
νλͺ© μ¬λΌμ΄λ©μ λ«μ§ μκ³ λ€λ‘ λ²νΌ λ±μ μ¬μ©νμ¬λ³΄κΈ°λ₯Ό λκ°λ©΄ λ€μμ νλͺ© μ¬λΌμ΄λ©μ΄ μ ν μλνμ§ μμ΅λλ€. μ΄ κ²½μ°μλ (ν΄λ¦) μ΄λ²€νΈλ₯Ό μ¬μ©ν μ μμ΅λλ€. μ¬λΌμ΄λ©μ μ΄κ³ κ·Έλ₯ λκ°κΈ° λλ¬Έμ
λλ€. μ‘κΈ° (ν΄λ¦) μ΄λ²€νΈμ λν λ³κ²½ μ¬νμ΄ μμ΅λλ€.
λ λ€λ₯Έ ν΄κ²° λ°©λ²μ λλ€. κ·Έκ²μ λλ₯Ό μν΄ μλν©λλ€.
in .html
<ion-item-sliding>....</ion-item-sliding>
in .ts
import { IonItemSliding } from '@ionic/angular';
@ViewChild(IonItemSliding) itemSliding: IonItemSliding;
ionViewWillLeave() {
setTimeout(() => { this.itemSliding.closeOpened(); }, 500);
}
μΉμ νλ λΈλλ,
@brandyscarney μ’ λ³Ό μ μμ΅λκΉ? μ°λ¦¬λ v4 λ‘μ λ§μ΄κ·Έλ μ΄μ λ¨κ³μ μμΌλ©° μ΄μ¨ νμ μ견μ λ£κ³ μΆμ΅λλ€. μ€μν λ¬Έμ μΈ κ² κ°μ΅λλ€.
ν° κ°μ¬λ₯Ό λλ¦°λ€.
Norbert
νκ·Έ ν΄μ£Όμ μ κ°μ¬ν©λλ€! μ‘°μ¬λ₯Ό μν΄ νλ‘μ νΈ λ³΄λμ μΆκ°νμ΅λλ€.
νΈμ λ΄μ κ°κΈ°
μ΄ λ¬Έμ μ κ°μ¬λ립λλ€! μ΄κ²μ PR # 17492μ μν΄ λ³ν©λμμ΅λλ€. λ€μ 릴리μ€μμμ κ²μ
λλ€ : 4.1.0
. κ·Έ νμλ λ¬Έμ κ° κ³μ λ°μνλ©΄ μλ €μ£Όμμμ€.
λ¬Έμ λ₯Ό μ£Όμ μ κ°μ¬ν©λλ€! μ΄ λ¬Έμ λ μλ λ¬Έμ μ κ΄λ ¨μ΄μλ λκΈμ λ°©μ§νκΈ° μν΄ μ 겨 μμ΅λλ€. μ΅μ λ²μ μ Ionicμμ μ¬μ ν λ¬Έμ κ° λ°μνλ κ²½μ° μ λ¬Έμ λ₯Ό μμ±νκ³ ν νλ¦Ώμ΄ μμ ν μ±μ μ‘λμ§ νμΈνμμμ€.
κ°μ₯ μ μ©ν λκΈ
λν μμμ λμ λͺ©λ‘κ³Ό ν¨κ» λμΌν λ¬Έμ κ° λ°μνμ΅λλ€.κ΅¬μ± μμλ₯Ό μλ‘ κ³ μΉλ©΄ μλ‘ κ³ μΉ λκΉμ§ λ€λ₯Έ μμλ₯Ό μμ ν μ μμ΅λλ€.
μ£Όλ³μ νν€μΉ ν μμλ₯Ό μλ‘ κ³ μΉμ§ μμλ μ μλνλ€λ κ²μ μμμ΅λλ€. λ¬Έμλ₯Ό 보면 νλͺ© λλ λͺ©λ‘μ λͺ¨λ μ¬λΌμ΄λ© νλͺ©μ λ«λ λ°©λ²μ΄ μμ΅λλ€. μ΄κ²μ μ¬μ©νλ©΄ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€.
#dynamicList
@ViewChild('dynamicList') dynamicList;
ν΄λΉ λͺ©λ‘μ μ‘μΈμ€<ion-item-option>
ν΄λ¦νλ©΄ λ μ½λλ₯Ό μμ νκΈ° μ μdynamicList.closeSlidingItems()
νΈλ¦¬κ±°λ©λλ€.κ·Έλμ μ΄κ²μ΄ λμμ΄λκΈ°λ₯Ό λ°λλλ€. λλ μ΅κ·€λ¬κ° μ²μμ΄λ―λ‘ μ΄λ¦¬μμ μΌμνκ³ μμ§ μκΈ°λ₯Ό λ°λλλ€.