我想使用Ember.js和Fabric.js构建餐厅表管理和楼层布局应用程序(如果它们为Ember集成提供更好的支持,我还准备考虑其他画布框架)。我已经有一个Ember应用程序可以管理一个表列表(即TablesRoute以显示表列表,使用New ans Edit子路由等)并读取并将它们写入JSON后端。
我需要在画布上显示表格而不是简单的项目列表。我需要在Fabric和Ember对象之间进行双向绑定,即当在画布上移动或调整表格时,我需要在Ember中更新对象属性,反之亦然,当在Ember中更新属性时(通过表单或从后端更新)然后我需要图形表示在画布上更改。
有人能指出正确的架构方向如何解决这个问题吗?
我感谢我能得到的所有帮助:)
答案 0 :(得分:0)
注1:我在以下示例代码中使用POD结构。 https://www.ludu.co/course/ember
注意2:我通过运行命令' bower install fabric --save'安装fabric.js。在我的项目中。
template.hbs
<div><button id="drawRect" {{action 'draw'}}>Draw Rect</button></div>
<div><canvas id="test_fabric" width="200" height="200"></canvas></div>
{{outlet}}
controller.js
import Ember from 'ember';
/* global fabric */
// No import for fabric, it's a global called `fabric`
function drawRect() {
// create a wrapper around native canvas element (with id="test_fabric")
var canvas = new fabric.Canvas("test_fabric");
// create a rectangle object
var rect = new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 20,
height: 20
});
// "add" rectangle onto canvas
canvas.add(rect);
}
export default Ember.Controller.extend({
actions: {
draw: function() {
//
drawRect();
}
}
});
注意:不要忘记通过向模块添加/ *全局结构* /来使JSHint满意。 http://ember-cli.com/user-guide/#managing-dependencies