Canvas 等待在余烬视图中加载多个模型
我有一个使用canvas元素的Ember应用程序。我使用以下模型: 套件有许多位置有许多组件有许多功能 为第一个工具包加载模型数据的映射管线对象:Canvas 等待在余烬视图中加载多个模型,canvas,ember.js,Canvas,Ember.js,我有一个使用canvas元素的Ember应用程序。我使用以下模型: 套件有许多位置有许多组件有许多功能 为第一个工具包加载模型数据的映射管线对象: App.MapRoute = Ember.Route.extend({ model : function() { return App.Kit.find(1); }, setupController: function(controller, model){ this._super(controller, model)
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>
我的问题是如何确保hasMany模型中每个模型的所有数据在传递到fabCanvas之前都已加载。FabCanvas库是预先编写的,并假定在处理之前所有数据都可用
我想解决方案可能包括使用.on('didLoad')检查每个模型的存在性
谢谢 您可能可以尝试检查并观察父模型数组上的
isLoaded
属性,如这些答案和中建议的那样。虽然我不确定这是否保证所有的都有许多子关系,或者您的模型也会被加载。但你可以试试看。我会尝试自己为这个用例设置一些测试,如果我发现了什么,我会更新答案。这对我来说很有效。就我而言,我的主要模型是一个App.Month
,它有许多App.Company
模型。我认为这是一种方法:
dataChanged: function() {
if (this.get('controller.model.companies.isLoaded')) {
Ember.run.once(this, 'someFunction');
}
}.observes('controller.model.companies.isLoaded'),
dataChanged: function() {
if (this.get('controller.model.companies.isLoaded')) {
Ember.run.once(this, 'someFunction');
}
}.observes('controller.model.companies.isLoaded'),