Canvas 等待在余烬视图中加载多个模型

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)

我有一个使用canvas元素的Ember应用程序。我使用以下模型:

套件有许多位置有许多组件有许多功能

为第一个工具包加载模型数据的映射管线对象:

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'),