Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 其他模板中的Ember.js呈现模板未获取模型_Javascript_Ember.js - Fatal编程技术网

Javascript 其他模板中的Ember.js呈现模板未获取模型

Javascript 其他模板中的Ember.js呈现模板未获取模型,javascript,ember.js,Javascript,Ember.js,我遇到了一个问题,当我尝试从不同的路径使用模型时,它无法工作 以下是从索引路径获取的模型中绘制图表的工作示例: 我已经对其进行了修改,并创建了名为“图表”的单独模板,现在我想将其渲染到索引路径中,但无法从图表路径获取模型: 这是我的误解吗?模板只能从该路由的模型挂钩中呈现吗?modelFor不会为未命中的路由获取模型。它只会输出未定义的内容。您可以使用console.log对此进行测试 此外,您应该扩展ObjectController而不是Controller 您应该阅读本节: 这一变化解决了

我遇到了一个问题,当我尝试从不同的路径使用模型时,它无法工作

以下是从索引路径获取的模型中绘制图表的工作示例:

我已经对其进行了修改,并创建了名为“图表”的单独模板,现在我想将其渲染到索引路径中,但无法从图表路径获取模型:

这是我的误解吗?模板只能从该路由的模型挂钩中呈现吗?

modelFor不会为未命中的路由获取模型。它只会输出未定义的内容。您可以使用console.log对此进行测试

此外,您应该扩展ObjectController而不是Controller

您应该阅读本节:

这一变化解决了问题:

App.ChartsController = Ember.Controller.extend(Ember.PromiseProxyMixin,{ ...

正在使用修改过的jsbin

欢迎使用。这里的问题应该针对特定的编程问题-预期的行为、特定的错误或意外的行为是什么?您得到的是一个清晰的问题陈述,以及一个可复制的示例?请坐一会儿。也看到a或a。我做到了。。。我写过,我无法从图表model=中获取数据,这就是问题所在。代码在jsbin上。正在工作以便更容易发现问题。。。你想让我在这里粘贴500行代码吗?上次我粘贴了部分代码,我有34条注释和25个不同的错误建议。。。再过几个小时。。现在有人可以从jsbin打开我的链接,检查他的解决方案是否有效。。然后粘贴正确的答案。用你的时间去做一些富有成效的事情,而不是否决一些你甚至没有分析过的事情。谢谢。现在你删除了关于否决我的问题的评论,为什么?谢谢!因为我认为它不会初始化,因为它不会进入路由。。我在考虑将索引中的模型与RSVP promise合并到哈希中,或者使用2个Diverenet控制器获取两个模板模型?实现我想要的目标的正确路径是什么?我会开始远离索引路线,开始转向嵌套资源,这里有一个小例子:我真的建议你浏览一下指南的这一部分,试着熟悉一下路由器。我想在索引中呈现两个不同的模板,但它们是独立的模板,比如不嵌套在索引中的图表。基本上,我想将它们分别加载到索引中,这样它们都可以有相互独立的isloading事件,如果一个通过ajax获取数据,那么它将首先被渲染,但如果另一个正在获取数据,那么它仍然会有spinner。换言之,我不知道筑巢是否能帮助我。。在索引路径中,我希望呈现两个不同的模板,它们都是独立的=都可以有自己的自定义加载事件。我现在已经尝试使用图表来实现这一点,但数据甚至无法获取,因为您所说的路由未命中=模型中没有ajax调用。这两个模板都将通过ajax调用加载数据,它们都将获取不同的数据。如何做到这一点?我现在在这篇文章中看到有人和我的问题相似。这是解决这个问题的最好办法吗?
App.IndexRoute = Ember.Route.extend({ 
    renderTemplate: function(controller, model) {
      console.log(this.modelFor('charts'));
        this.render('index');
        this.render('charts', {
            into: 'index',
            outlet: 'charts',
            controller: this.controllerFor('charts'),
            model: this.modelFor('charts')
        });
    }
});

App.ChartsRoute = Ember.Route.extend({
    model: function() {
        return Ember.$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?');
    }
});
this.render('charts', {
  into: 'index',
  outlet: 'charts',
  controller: this.controllerFor('charts'),
  model: this.modelFor('charts')
});
App.IndexRoute = Ember.Route.extend({
setupController: function() {
this.controllerFor('charts').set('promise', Ember.$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?'))
  }


}); 
App.ChartsController = Ember.Controller.extend(Ember.PromiseProxyMixin,{ ...