Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ddeec2c

Browse files
committed
knockout.js sample
1 parent a5ef842 commit ddeec2c

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,55 @@ Usage
1717
Coming soon...
1818

1919

20+
## Use with knockout.js
21+
22+
```javascript
23+
ko.components.register('dashboard-grid', {
24+
viewModel: {
25+
createViewModel: function (params, componentInfo) {
26+
var ViewModel = function (params, componentInfo) {
27+
var grid = null;
28+
29+
this.widgets = params.widgets;
30+
31+
this.afterAddWidget = function (items) {
32+
_.each(items, function (item) {
33+
item = $(item);
34+
if (item.data('_gridstack_node'))
35+
return;
36+
37+
if (grid == null) {
38+
grid = $(componentInfo.element).find('.grid-stack').gridstack({
39+
auto: false
40+
}).data('gridstack');
41+
}
42+
43+
grid.add_widget(item);
44+
}, this);
45+
};
46+
47+
};
48+
49+
return new ViewModel(params, componentInfo);
50+
}
51+
},
52+
template: [
53+
'<div class="grid-stack">',
54+
' <!-- ko foreach: widgets, afterRender: afterAddWidget -->',
55+
' <div class="grid-stack-item" data-bind="attr: {\'data-gs-x\': x, \'data-gs-y\': y, \'data-gs-width\': width, \'data-gs-height\': height}"><span data-bind="text: $index"></span></div>',
56+
' <!-- /ko -->',
57+
'</div>'
58+
].join('\n')
59+
});
60+
```
61+
62+
and HTML:
63+
64+
```html
65+
<div data-bind="component: {name: 'dashboard-grid', params: $data}"></div>
66+
```
67+
68+
2069
License
2170
=======
2271

0 commit comments

Comments
 (0)