Ember.js渲染模板在其他模板中没有获取模型
Ember.js rendering template in other template not fetching model
我遇到了一个问题,当我尝试从不同的路由使用模型时,它无法工作。
以下是从索引路由中提取的模型中绘制图表的工作示例:http://jsbin.com/kulefogoqera/1/edit
App.IndexRoute = Ember.Route.extend({
model: function() {
return Ember.$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?');
}
});
我已经修改了它,并制作了一个名为charts的单独模板,现在我想将它渲染到索引路由中,但无法从charts路由中获取模型:http://jsbin.com/yotinemubinu/1/edit
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=?');
}
});
这是我的误解吗?模板只能从该路线的模型挂钩中渲染吗?
modelFor
不会为未命中的路由获取模型。它只会输出未定义的。您可以使用console.log
对此进行测试。http://jsbin.com/yotinemubinu/4/edit
this.render('charts', {
into: 'index',
outlet: 'charts',
controller: this.controllerFor('charts'),
model: this.modelFor('charts')
});
此外,您应该扩展ObjectController
而不是Controller
。
您应该阅读本节:http://emberjs.com/guides/routing/
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,{ ...
正在处理修改的jsbinhttp://jsbin.com/yotinemubinu/5/edit
相关文章:
- 如何使用backbone.js从集合中获取模型名称
- 主干-从模板中迭代的集合中获取特定的模型
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- Ember.js-获取DOM元素的模型数据
- 使用 ng 模型获取数据时遇到问题
- 如何将数据从模型获取到JavaScriptMVC4
- 如何在模型获取完所有信息后才将其传递给视图's数据
- 挖空,映射后从视图模型获取 JSON
- 从视图中的模型获取属性的主干
- 为什么当我将数据选项添加到骨干模型获取时,它不会触发回调
- 如何在角度.js中使用ng模型获取按钮文本
- 主干模型获取属性函数返回上次更新的值
- 将数据从模型获取到视图
- 如何使用AngularJS中的ng模型获取复选框值(由用户检查)
- 使用dom模型获取和设置html标签的值
- 未从$scope模型获取AngularJS指令中的数据
- Backbonejs:模型获取意味着模型未“刷新”
- 骨架模型.获取非设置值
- Sharepoint 2010客户端对象模型-获取当前列表的名称
- 重写Backbonejs模型获取函数