-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.htm
70 lines (65 loc) · 3.65 KB
/
index.htm
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
62
63
64
65
66
67
68
69
70
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout-postbox/0.6.0/knockout-postbox.min.js"></script>
<script src="ProfileModel.js"></script>
<script src="DataLoader.js"></script>
<script src="AddressComponent.js"></script>
<script src="ProfileComponent.js"></script>
<script src="SelectorComponent.js"></script>
<script src="PageComponent.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
</head>
<body>
<!-- Templates -->
<template id="page-template">
<div data-bind="component: {name: 'selector', params: {data: data, showAddress: showAddress, selection: selection}}"></div>
<div class="mt-3" data-bind="component: {name: 'profile', params: data.list()[selection()]}"></div>
</template>
<template id="selector-template">
<div class="btn-group mb-3" data-bind="foreach: data.list">
<button class="btn" data-bind="click: $component.selectProfile, text: name"></button>
</div>
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" data-bind="checked: data.onlyActive">
Only Active Profiles
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" data-bind="checked: showAddress">
Show Address
</label>
</div>
</template>
<template id="profile-template">
<b>Name: </b><span data-bind="text: name"></span>
<!-- ko if: $parent.showAddress -->
<div data-bind="component: {name: 'address', params: {street: address.street, no: address.no}}"></div>
<!-- /ko -->
</template>
<template id="address-template">
<b>Address: </b><span data-bind="text: no"></span> <span data-bind="text: street"></span> street
</template>
<!-- Root Component -->
<div class="jumbotron">
<h1 class="display-3">Knockout/Vue Integration</h1>
<hr class="my-4">
<div class="container">
<div class="row">
<div class="col" data-bind="component: {name: 'page', params: data}"></div>
<div class="col bg-info text-light rounded" id="log"></div>
</div>
</div>
</div>
<!-- KO bootstrap -->
<script>
ko.applyBindings({data: window.dataLoader});
</script>
</body>
</html>