Lütfen başlığa göre karar vermeyi sevmeyin, önce yayını okuyun.İyonik 2/açısal 2 - İçeriğimdeki Bendext ile HTML elemanlarını nasıl ekleyebilirim?
Yeni bir çalışma olan ve tip 2 ile çalışmaya başladım.
böyle, typscript değişkeni "newItem" referans html elemanı ekliyorum: "HTML'lerini ayarlar I) (bir işlev addTodo sahip bileşen için benim typescript sınıfında,
<ion-content>
<ion-list inset>
<ion-item *ngFor="let item of todos" (click)="edit(item)">
{{item}}
</ion-item>
<ion-item>test</ion-item>
<div [innerHTML]=newItem></div>
</ion-list>
</ion-content>
iyon maddelik 'etiketi derleme üzerinde göz ardı edilir ve sadece ekler 'div öğesi için testi': newItem" nedense
addTodo(){
this.newItem = "<ion-item>test</ion-item>";
}
pluss/sağ köşesindeki simgesini eklemek basıldığında'.
appliction aşağıdaki gibi görünecektir:
Bileşen sınıfı:
Yani görünümüne bu eklemek çalıştı:<form *ngIf="editedItem">
<ion-item><input [(ngModel)]="newItem" name="newItem">
<ion-buttons end>
<button ion-button color="danger" (click)="btnCancel()">Cancel</button>
<button ion-button color="secondary" (click)="btnAdd()">Add</button>
</ion-buttons>
</ion-item>
</form>
Ama şimdi tıkladığımda İptal veya ekle, sayfanın yeniden yüklenmesi gerekiyor. [(ngModel)] = "newItem" ile yanlış bir şey yaptığımı biliyorum, açısal değişkeni modele aktarmaya çalışmalı mıyım yoksa bunu yapmanın daha iyi bir yolu var mı?
düzenleme: @JoeriShoeby 'un aşağıdaki yanıtında görüldüğü gibi, değişkeni (tıklama) işlevine geçirdiniz. modelde
:
export class TodosPage {
newItem = "";
todos: string[] = this.getTodos();
editedItem: boolean = false;
constructor(public navCtrl: NavController) {
}
addTodo(){
this.editedItem = true;
}
btnAdd(){
this.todos.push(this.newItem);
this.editedItem = false;
}
btnCancel(){
this.editedItem = false;
}
getTodos(): string[]{
return ["item 1", "item 2"];
}
}
Bana bileşen sınıfı verebilir misiniz? Aslında yeni item nesnesini 'todos' dizisine itmelisiniz. Not html – JoeriShoeby
Bileşen sınıfını gönderiye ekledim. Diziyi güncelleyebileceğimi düşündüm ama yeni öğenin girişi almasını ve kaydetme ve iptal etme düğmelerini istiyorum. AddTodo() içeriği için yeni bir bileşen oluşturabilirim diye düşündüm. Ancak, bir işlevi dinamik olarak nasıl ekleyeceğimi anlayamıyorum. –
Bana bir saat verin, sonra bir bilgisayarım var açıklamak için bir kod var – JoeriShoeby