带有列表和ID键的离子ngmodel

时间:2018-08-15 17:33:34

标签: javascript typescript ionic-framework

我有问题。

我想将一个切换按钮与以下内容链接并列出,并像按钮一样使用此切换的ID。

//Here my fonction to convert 
 transform(d)
   {
		
	   alert(d); //when i put this.id here i have undefined value
	   return Number(d);
   }
<ion-toggle id="0" name="toggle1" [(ngModel)]="listToggle1[this.id)]"></ion-toggle>

<!--Here the pb is the "id" is a string and for the list i need a key valu in int -->

<!--This work but it's not dynamic -->
<ion-toggle id="0" name="toggle1" [(ngModel)]="listToggle1[0]"></ion-toggle>

<!-- i try this -->

<ion-toggle id="0" name="toggle1" [(ngModel)]="listToggle1[transform(this.id)]" ></ion-toggle>

<!--i call a function with the id in parameter, and this typescript function will convert the string id in an int value

But the pb is here in transform(this.id) the this.id is undefined-->
<!--This work but again not dynamic -->
<ion-toggle id="0" name="toggle1" [(ngModel)]="listToggle1[transform('0')]" ></ion-toggle>

我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

我建议使用:(ionChange),然后检测在组件中单击了哪个元素,如下所示:

HTML:

<ion-toggle id="0" name="toggle1" (ionChange)="listToggle1($event)"></ion-toggle>

和TS:

listToggle1(event) {
    console.log(event._elementRef.nativeElement.id);
}

这会打印切换元素的ID,然后根据需要进行处理。

答案 1 :(得分:0)

最后,就像我说的,我想克隆/复制一些html元素

我的项目中,我有一种警报,超出了用户的配置范围(计时器文本通知...)

我有一个“模板”,通常可以复制它,以便使用不同的参数创建多个警报

myapp

因此,当用户单击“添加新”时,通常会添加与“表单”相同的html元素,但带有新值。 那是主意。但是我没有很好的克隆功能

	duplicate(d) {
	alert(d);
	var i = 0;
	var original = document.getElementById(d);

    var clone = original.cloneNode(true); // "deep" clone

	clone.id = Number(d)+1;
	alert(clone.id);
	

    original.parentNode.appendChild(clone);

}

我唯一可以修改的是新元素的ID(我无法修改其他类似ngmodel的ID),当我克隆和元素时,我也无法修改html页面中的新元素(从角度来看)的用户)

一些人知道复制或复制html元素的好方法吗?