|
18 | 18 | ${ fullname } is ${ age } years old
|
19 | 19 | <button data-bind='click: makeOlder'>Make older</button>
|
20 | 20 | </script>
|
| 21 | +<script id='feedTemplate' type='text/html'> |
| 22 | + <p>${ name } (${ id }) : ${ phone }</p> |
| 23 | +</script> |
| 24 | + |
21 | 25 | <span data-bind="text: formatedTime"></span>
|
22 | 26 |
|
| 27 | +<div data-bind='template: { name: "feedTemplate", foreach: viewModel.feed }'> |
| 28 | +</div> |
| 29 | + |
| 30 | +<span data-bind="text: feedValue"></span> |
| 31 | + |
23 | 32 | <script>
|
24 | 33 | function displayTime(seconds) {
|
25 | 34 | return Math.floor( seconds / 60) + ":" + ((seconds % 60).toFixed(0) < 10 ? '0' : '') + (seconds % 60).toFixed(0)
|
|
29 | 38 | firstname: ko.observable("Kent"),
|
30 | 39 | lastname: ko.observable("Jordan"),
|
31 | 40 | age: ko.observable(18),
|
32 |
| - refresh: ko.observable(90), |
| 41 | + refresh: ko.observable(10), |
33 | 42 | description: ko.observable("Test"),
|
| 43 | + feed: ko.observableArray([]), |
34 | 44 | makeOlder: function() {
|
35 | 45 | this.age(this.age() + 1);
|
36 |
| - }, |
| 46 | + } |
37 | 47 | };
|
38 | 48 | viewModel.fullname = ko.dependentObservable(function() {
|
39 | 49 | return this.firstname()+" "+this.lastname();
|
40 | 50 | }, viewModel);
|
41 | 51 | viewModel.formatedTime = ko.dependentObservable(function() {
|
42 | 52 | return displayTime(this.refresh());
|
43 | 53 | }, viewModel);
|
| 54 | + viewModel.feedValue = ko.dependentObservable(function() { |
| 55 | + return this.feed().length; |
| 56 | + }, viewModel); |
| 57 | + |
44 | 58 |
|
45 | 59 | ko.applyBindings(viewModel);
|
46 | 60 |
|
47 | 61 | setInterval(function() {
|
48 | 62 | viewModel.refresh(viewModel.refresh() - 1);
|
49 |
| - if(viewModel.refresh()==-1) |
50 |
| - /* Poll and update from a JSON webservice here? */ |
51 |
| - viewModel.refresh(90); |
| 63 | + if(viewModel.refresh()==-1) { |
| 64 | + jQuery.get('sample_data.json', function(resp) { |
| 65 | + viewModel.feed(jQuery.parseJSON(resp)); |
| 66 | + }); |
| 67 | + viewModel.refresh(10); |
| 68 | + } |
52 | 69 | }, 1000);
|
53 | 70 | </script>
|
54 | 71 |
|
|
0 commit comments