我最近为 KineticJS找到了这个knockoutjs 插件
wiki 页面包含一个示例,但我并不真正了解它究竟做了什么:
<!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>
除了没有得到“没有 javascript”的笑话(至少我认为它是这样的吗?)我看不出这个插件如何帮助我绑定到定义数字或矩形的敲除 observables 列表。
例如,假设我通过 ajax 调用得到以下 json:
{"rectangles":[{"id":1,"x":0,"y":0,"width":200,"height":30},{"id":2,"x":0,"y":40,"width":200,"height":30}]}
然后我可以使用这些数据在我的 ViewModel 中填充一个可观察的数组,但是如何使用插件将 Kinetic 绑定到它,以便自动显示和更新矩形?