Недавно я нашел это knockoutjs plugin для KineticJSКак использовать Нокаут-Kinetic с нокаутом наблюдаемых
страница Вики включает в себя пример, но я не очень понимаю, что это делает именно:
<!DOCTYPE html>
<html>
<head>
<title>A Knockout/Kinetic example</title>
<script type="text/javascript" src="kinetic-v3.9.8.min.js"></script>
<script type="text/javascript" src="knockout-2.1.0.js"></script>
<script type="text/javascript" src="../knockout-kinetic.js"></script>
</head>
<body>
<!--
This example is from the 'Rect' tutorial:
http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-rect-tutorial/
-->
<div id="container">
<!-- Look, ma! No JavaScript! -->
<!-- ko Kinetic.Stage: { width: 578, height: 200 } -->
<!-- ko Kinetic.Layer: { } -->
<!-- ko Kinetic.Rect: { x: 239, y: 75, width: 100, height: 50, fill: "#00D2FF", stroke: "black", strokeWidth: 4 } -->
<!-- /ko -->
<!-- /ko -->
<!-- /ko -->
</div>
<script type="text/javascript">
// Ok, a *little* JavaScript...
ko.applyBindings();
</script>
</html>
Помимо из-за того, что не получается шутка «no javascript» (по крайней мере, я думаю, что это именно так) Я не вижу, как этот плагин может помочь мне привязать к списку наблюдаемых нокаутом, который определяет число или прямоугольники.
Например, предположим, что я получаю JSON в результате AJAX вызова:
{"rectangles":[{"id":1,"x":0,"y":0,"width":200,"height":30},{"id":2,"x":0,"y":40,"width":200,"height":30}]}
Я мог бы затем использовать эти данные для заполнения наблюдаемого массива в моем ViewModel , но как я могу использовать плагин для привязки Kinetic к нему, чтобы прямоугольники автоматически отображались и обновлялись?