我有一个使用画布元素的 Ember 应用程序。我正在使用以下模型:
一个套件hasMany Positions hasMany Components hasMany Features
为第一个套件加载模型数据的映射路线对象:
App.MapRoute = Ember.Route.extend({
model : function() {
return App.Kit.find(1);
},
setupController: function(controller, model){
this._super(controller, model);
}
});
以及这条路线中的画布元素视图
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="map">
{{view App.CanvasView }}
</script>
画布视图:
App.CanvasView = Ember.View.extend({
tagName: 'canvas',
width: 600,
height: 600,
didInsertElement: function(){
var el = this.$();
// Pseudo Code
// When all kit, Position, Component and Feature Data is loaded
// Pass Data to createFabricCanvas
// this.createFabricCanvas(el, data);
},
createFabricCanvas: function(el, data){
fabCanvas = new fabCanvas(el, data);
}
});
我的问题是如何确保在将每个 hasMany 模型的所有数据传递到 fabCanvas 之前加载它。FabCanvas 库是预先编写的,并假定所有数据在处理之前都是可用的。
我想解决方案可能涉及使用 .on('didLoad') 检查每个模型的存在。
谢谢。