2017-07-26 58 views
-3

我有一个JSON从一个阵列的项目,如:如何切换在另一个

"data": 
    [{ 
     "max": 10, 
     "class": "selected", 
     "type": "numbers" 
    }] 

我想用一个循环,从1到10(我的最大值)启动并显示所有的数字内部跨度如:

<span>1</span><span>2</span>...<span>10</span> 

比如果我点击跨度元素我希望这个元素被添加到一个新的空数组。所以可以说我有其他的空数组:

newarray: Array<number> = [] 

将变为:

newarray = [1] 

此外,我想切换类当你点击span元素,由json.class财产承担。

+2

你的问题是什么? – Gael

+1

这似乎是一个要求,而不是一个问题。 –

+0

AngularJS2?所以,你的意思是AngularJS或Angular2 +只有它的Angular2 +标记为非AngularJS并从问题标题中移除'JS'。如果AngularJS从标题中删除2 ... – JGFMK

回答

0

_Hi尼古拉,

基本上你会用ngFor遍历您data阵列和显示值。然后,你可以(click)处理器结合每个项目从你的类和此功能,您可以用纯JavaScript函数来实现切换逻辑类似检查,如果产品里面newarrayindexOf那么如果不使用push添加它里面的功能,否则,你想从newarraysplice

<span *ngFor="let item of data" (click)="toggle(item)">{{item.max}}</span> 

如果您还想切换类选择,你可以做这样的事情,除去:

<span [class]="item.currentClass" *ngFor="let item of data" (click)="toggle(item)">{{item.max}}</span> 

toggle()里面的方法,你可以根据切换状态只分配item.currentClass = item.classitem.currentClass=''

请参阅this demo并让我知道现在是否更清楚如何去做。

+0

嘿,太好了。是或多或少,这是我想要实现的。 只有一件事,如果你想要帮助,是因为我想在数组中设置maxnumber,所以它只有一个对象,而不是每个对象都是独立的。所以如果我设置max:10,它将从1开始并且结束到10,(对于i = 0; i <= 10; i ++类似),并且我不需要在数据数组内分别输入这些数字。 我会多一点操场,看看我是否在那里卡住更多,但是,是的,非常感谢你。 –

+0

@NikolaNoxiousDimitrov嘿,你怎么样,你做到了你想达到的目的? – codtex

+0

再次感谢。我正忙着处理它。我还有两件事。首先,如果长度变为3,我想停止在第二个(选定)列表中添加元素。因此,如果此列表获取3个元素(我激发警告窗口),但基本上停止添加元素,但仍然可以删除元素。我尝试了while(this.slected.length <= 3)它的作用,但它会停止toggle()函数。第二件事是,如果您从第二个(选定)列表中单击它们并将第一个列表中的类设置为undefined或empty,我想删除这些元素。 –

相关问题