forked from ariatemplates/hashspace
-
Notifications
You must be signed in to change notification settings - Fork 0
/
list.hsp
62 lines (54 loc) · 1.69 KB
/
list.hsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{template list(persons)}
// onselectstart: prevents double-click selection on elements
<div onselectstart="return false">
<div class="msg">
<a onclick="{addElement()}">Add element</a> -
<a onclick="{deleteElement()}">Delete element</a> -
<a onclick="{changeAll()}">Change all elements</a>
</div>
<ol>
{foreach p in persons}
<li>
{p.firstName} {p.lastName}
{if p_isfirst}<span class="info">(first)</span>{/if}
{if p_islast}<span class="info">(last)</span>{/if}
</li>
{/foreach}
</ol>
</div>
<div class="msg">
Number of people in the list: {persons.length}
</div>
{/template}
var persons=[
{firstName:"Homer",lastName:"Simpsons"},
{firstName:"Marge",lastName:"Simpsons"},
{firstName:"Bart"},
{firstName:"Lisa"},
{firstName:"Maggy"}
]
var count=0;
function addElement() {
count++;
// add one element without removing any at position 1
persons.splice(1,0,{firstName:"John",lastName:'Doe'+count});
}
function deleteElement() {
// remove one element at position 0
persons.shift(); // same as persons.splice(0,1);
}
function changeAll() {
// replace all elements (from 0 to persons.length-1) with the array provided as last argument
persons.splice2(0,persons.length,[
{firstName:"Charlie", lastName:"Parker"},
{firstName:"Sonny", lastName:"Stitt"},
{firstName:"Cannonball", lastName:"Adderley"},
{firstName:"Stefano", lastName:"Di Battista"},
{firstName:"Kenny", lastName:"Garrett"}
]);
}
// Exports the needed parts for the playground viewer
module.exports = {
template: list,
data: [persons]
};